Markdownの投稿サイトである。 既に2つ投稿されている。
Flag 0 URL推測
2つ記事が投稿されているが、
- /page/1
- /page/2
のように連番になっている。
番号を変えることで、不正に何かを覗けないだろうか。
/page/7
7だけforbiddenになっている。
今は見ることができないが、ゆくゆく見る方法があるかもしれない。
実は他にも同様の連番を使っている部分がある。
編集画面だ。
- /page/edit/1
- /page/edit/2
こちらで先ほどの7を参照できないだろうか。
/page/edit/7
こちらは内容を見ることができた。pageについては適切に認証情報のチェックをしていたが、editは抜けていたようだ。
Flag 1 URL攻撃
これがとても分かりにくいのだが、Flag 0からeditはURLがちょっと弱そうな感じがする。
数字を出しているが、DBか何かから情報を取ってきているはずで、ここに不正な文字が入れられると脆弱性につながる。
適当に不正な文字列を入れてみると、フラグが出てくる。
/page/edit/'
Flag 2 XSS
投稿サイトと言えば、XSSがもっともありそうな脆弱性である。
タイトルに適当にタグを入れてみる。
page画面では適切にエスケープされているが…
Home画面では抜けていたようだ。フラグが出てきた。
Flag 3 これもXSS
本文中でもXSSを試してみよう。
scriptタグを試すと、これはダメみたいだ。
scrubbedタグに変換されてしまう。 scriptタグはダメっぽいのでimgタグでやるやつでやってみる。
インジェクションに成功した。
フラグもそれを検知して、ソースコードに入れ込まれている。