攻防世界-PHP2

打开网站,只有一个Can you anthenticate to this website?
源码什么都没有,扫描后台,发现源码泄露
phps文件就是php的源代码文件,通常用于提供给用户(访问者)查看php代码,因为用户无法直接通过Web浏览器看到php文件的内容,所以需要用phps文件代替。其实,只要不用php等已经在服务器中注册过的MIME类型为文件即可,但为了国际通用,所以才用了phps文件类型。
https://blog.csdn.net/loseheart157/article/details/108140659

发现代码,代码审计可以得到该PHP文件的作用是:
检查GET方法传入的"id"变量,如果是"admin",则退出
如果不是则对id进行url解码,如果解码后id为"admin",则成功验证
于是可以构造payload:
index.php?id=%2561dmin
TIPS:
在我们输入url的时候,会自动urldecode一回,这时会将非ascii码进行编码,于是%25就会变成%,进行第一次比较:
if("admin"==="%61dmin")
通过,然后在index.php文件中,再次进行decode,%61就会变成字母a,再次验证的时候就为admin了

最后:
浏览器会把非字母数字进行编码,而"%"+"字母的ascii码的十六进制"解码会成为对应的字母

tips:
%25编码会成为%
%27编码会成为'

浙公网安备 33010602011771号