四流/四留/4ryu

ただのメモです.Writeupなら他のブログ見たほうがいいと思います.

Hacker101 CTF : Micro CMS v1 Writeup

 Hacker101CTFのMicro CMS v1に挑戦しました。後のためのメモとして残します。なお筆者は全然知識ないので見るならほかの人のwriteupを推奨します。

0.どこまで試行できたか

 ターゲットを見てみると、Testing・Markdown_Test・Create a new pageを発見。まず全ページのソースコードを見てみるがめぼしい情報はなし。Markdownのページにあった画像から情報を探し出そうとしたがこれもなし。

 URLを見ると<ターゲットIP>/page/のように管理されているので、適当にadminと入力してみても無理。試しにIPだけで表示してみてもめぼしい情報はなし。

 次に新しいページができるっぽいのでとりあえず作ってみる。すると新しくできたページはなぜか<IP>/page/6となっていた。確か元あったページは順に1,2となっていたはず。なので3,4,5とやってみると、ちょうど4の時にForbiddenがでる。おそらくここにフラグがあるだろう。

 そのあととりあえずeditで反応を期待してechoを入力してみたが、これといって解決の糸口はつかめず、ヒントを見てもいまいちわからなかったのでここでギブアップ。

 

1,Flag0

 上述したように新しいページを作ると、(人によってはページが違うらしいが)今回の場合6となる。そして4のときにForbiddenが出ることから何かしらの手段で入る必要がある。例えば最初のページを編集してみると<IP>/page/edit/1となる。つまりページ4も同等の手段で入れる可能性がある。実際にやってみるとフラグが表示された。

 教訓:すべてのページのURLをチェックしてみる

 

2.Flag1

 正直これは納得いってないが記入する。ヒントによるとXSSSQLであり、フォーム送信以外の方法で送り、ユーザーからの予期しない入力で引き起こされるものっぽい。<IP>/page/edit/に’(シングルクォーテーション)を追加するとフラグが表示される。

 そもそもなぜeditのページなのかがいまいち納得いかない。

 教訓:SQL Injectionを探すときはあらゆるページにあらゆる不正な値を入れてみる

   (例えば " , && ,' , ; , : , \ みたいな)

 

3,Flag2

 何かしら投稿できることから、おそらくこれを使うのだろうと考えていたが結局できなかった。ヒントによると何かしら手を加えると別ページに影響が起きるようだ。XSS攻撃かと思ったがいまいち何を入力していいかわからない。ほかの方のwriteupを参考に新しいページを作成しタイトルに、<p>edit</p>と入力してもページに変化は起こらない。しかしホームに戻るとアラートがでてフラグが表示される。なんでやねん。

 教訓:投稿できる場合なにかしらのHTMLを注入してみる

   (それ以前にHTMLの知識が欠けているのを何とかしないと)

 

4.Flag3

 ヒントによればHTMLのscript以外を使えばよさそう。まったく知識がないので別の人が使ったHTMLを注入してみる。一見変化がないがソースコードを見てみるとフラグが表示されている。いやなんでやねん。

 教訓:HTMLの知識