本文作者:无名安全团队-Shustr
前段时间湖湘杯web的第一题,当时没做出来,后来看着大佬的wp也慢慢摸索出来了,现在题目已经上线到buuctf里了。
题目网页里给了一小段PHP,以及右下角的框架是willPHPv2.1.5
image-image-页面给了个函数assign然后returnview()
当时直接百度WillPHPv2.1.5的漏洞,没什么收获,但是得知这个框架是参考ThinkPHP3.2的,ThinkPHP3.2有一个类似的文件包含漏洞(几乎是一模一样),然后到这步就g了。
去github上翻了翻找到了v2.1.5的源码,接下来开始分析
既然是assign的模板渲染,那就先看assign函数
image-assign是一个赋值的作用,第一个参数是变量名,第二个参数是传递的值,传递给view中,继续追踪到View.php中
image-前面的if,else是一些查找字符串和转换字符串等函数,可以看到下面用到了一个渲染函数render,继续追踪到Tple.php里面的render函数
image-下面又有一个renderTo函数,继续追踪
image-这里存在危险函数extract,有可能引发变量覆盖漏洞,还有includecfile,可以实现任意文件包含
那么URL里传入以下参数试试
?name=cfilevalue=/etc/passwd
显示出了全部文件
image-发现没有flag,
但是可以利用包含pearcmd.php写入shell到tmp目录
(参考