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

hamayanhamayan's blog

Micro-CMS v1 [Hacker101 CTF]

Markdownの投稿サイトである。 既に2つ投稿されている。

Flag 0 URL推測

2つ記事が投稿されているが、

  • /page/1
  • /page/2

のように連番になっている。
番号を変えることで、不正に何かを覗けないだろうか。

/page/7
f:id:hamayanhamayan:20200517023400p:plain

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がもっともありそうな脆弱性である。
タイトルに適当にタグを入れてみる。

f:id:hamayanhamayan:20200517023455p:plain

f:id:hamayanhamayan:20200517023504p:plain

page画面では適切にエスケープされているが…
Home画面では抜けていたようだ。フラグが出てきた。

Flag 3 これもXSS

本文中でもXSSを試してみよう。

f:id:hamayanhamayan:20200517023528p:plain

scriptタグを試すと、これはダメみたいだ。

f:id:hamayanhamayan:20200517023534p:plain

scrubbedタグに変換されてしまう。 scriptタグはダメっぽいのでimgタグでやるやつでやってみる。

f:id:hamayanhamayan:20200517023542p:plain

インジェクションに成功した。
フラグもそれを検知して、ソースコードに入れ込まれている。