进入题目的界面,一通乱点点出了唯一一个可以进入的界面。
观察url
http://111.198.29.45:41597/index.php?page=index
觉得page变量有问题,既然他可以为index(即文件名,那可不可以显示文件源码呢?)
于是构造payload
http://111.198.29.45:41597/index.php?page=php://filter/read=convert.base64-encode/resource=index.php
果然爆出了源码。放到解密网站中go一下。解出源码。
代码审计,发现了关键点。
这里就要提到preg_replace()函数的漏洞了,在$pattern中包含/e时,$replacement会被当做php代码来使用。(正则匹配几次就会执行几次$replacement中的代码)
学习资料:http://www.xinyueseo.com/websecurity/158.html
那还有啥说的,burpsuite走起来。
扫出了目录,那就是一个个找了。最后发现s3chahahaDir有东西。
查看文件发现真的有flag。提交。完成!
另外:有两遍flag就是 因为 test test匹配了两次/test/ 所以以上的代码执行了两次(最好写两次,万一两次返回结果不一样呢,试试总没错QWQ)
原文地址:https://www.cnblogs.com/cioi/p/11664172.html
时间: 2024-10-02 22:10:51