題目
解題過程
掃了下端口和目錄,沒發現啥有用的信息。。。看了下提示,需要用到php源文件phps(咱之前沒聽說過)
訪問:http://111.198.29.45:49502/index.phps,出現源碼:
<?php if("admin"===$_GET[id]) { echo("<p>not allowed!</p>"); exit(); } $_GET[id] = urldecode($_GET[id]); if($_GET[id] == "admin") { echo "<p>Access granted!</p>"; echo "<p>Key: xxxxxxx </p>"; } ?>
這段代碼的意思是需要傳一個名為id的參數,參數值必須為經過url編碼后的admin
把admin做一次url編碼:
http://111.198.29.45:49502/index.php?id=%61%64%6d%69%6e
沒有成功。>_<。,wp里說的是url穿過去的時候本身就會做一次url編碼,所以這里需要二次編碼,好吧,把61%%64%6d%69%6e在做一次url編碼,拿到flag。
知識點總結
1. php備份文件:后綴為php~或者index.php.bak
2. php的源代碼文件:后綴為phps
3. ===:php的恆等運算符,和==有區別,從w3cschool截了張圖: