攻防世界 web进阶区 ics-06

进入题目的界面,一通乱点点出了唯一一个可以进入的界面。

观察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)

相关文章