CTF-攻防世界-PHP2(PHP源码)
题目
解题过程
扫了下端口和目录,没发现啥有用的信息。。。看了下提示,需要用到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截了张图: