作为国内广泛使用的PHP开发框架,ThinkPHP 在其发展过程中曾暴露出多个高危安全漏洞。其中,ThinkPHP 5.0.24 版本因存在远程代码执行(RCE)、反序列化、变量覆盖等多重漏洞,成为近年来安全研究和渗透测试的重点目标。本文将深入剖析 ThinkPHP 5.0.24 的常见漏洞类型、利用方式(EXP),并提供实用的安全加固建议,帮助开发者与安全人员全面掌握该版本的安全风险。

ThinkPHP 5.0.24 漏洞概览
ThinkPHP 5.0.24 属于 5.0.x 系列的最后一个版本,虽然修复了部分已知问题,但仍存在多个未完全修补的安全隐患,主要集中在以下几个方面:
远程代码执行(RCE)漏洞
反序列化漏洞
变量覆盖导致命令执行
任意文件包含与写入
这些漏洞在特定条件下可被攻击者组合利用,实现任意命令执行、写入Webshell、最终获取服务器控制权。
ThinkPHP 5.0.24 常见漏洞利用EXP(Payload)
以下是针对 ThinkPHP 5.0.24 的典型漏洞利用方式,仅供安全研究与合法渗透测试使用,请勿用于非法攻击。
1. 远程代码执行(RCE)EXP(无需开启 debug)
这是最经典的利用方式之一,通过构造特殊参数触发 _method=__construct,实现任意函数调用。
利用方式:POST 请求
说明:
_method=__construct:触发控制器构造函数method=GET:设置请求方法filter[]=system:指定过滤器为system()函数get[]=whoami:传入要执行的系统命令
✅ 适用版本:ThinkPHP 5.0 - 5.0.13、5.0.23 等,部分需开启
app_debug
2. 写入Webshell(文件写入EXP)
在成功执行命令后,可进一步写入PHP木马,便于长期控制。
EXP 示例:
或使用 base64 编码绕过WAF:
解码后内容为:
🛠 连接工具:写入成功后,可使用 蚁剑(AntSword) 或 冰蝎(Behinder) 连接
http://target.com/shell.php,密码为x。
3. 反序列化漏洞利用链(Unserialize RCE)
ThinkPHP 5.0.24 存在反序列化漏洞,攻击者可通过 unserialize() 触发危险类方法,最终实现RCE。
利用场景: 当应用存在反序列化入口,如:
POP链关键点:
起点:
Windows类的__destruct()中间:
Model类的toArray()→getAttr()→ 触发__call终点:
Output类的__call()调用危险函数
EXP 构造思路:
构造
Model实例并设置append属性利用
toArray()触发__call,调用Output类方法最终执行
system()或assert()实现RCE
🔍 工具推荐:可使用
PHPGGC或自定义脚本生成反序列化payload。
4. 变量覆盖导致RCE(Variable Override)
通过覆盖 Request 类的 filter、method 等属性,控制 param() 方法中的回调函数。
EXP 示例:
此利用方式通过变量覆盖,使 call_user_func_array($filter, $args) 执行任意命令。
漏洞成因分析
ThinkPHP 5.0.24 的漏洞根源在于:
不安全的魔术方法调用:
__construct被外部参数控制,导致任意方法调用。过滤器未严格校验:
filter参数可传入系统函数如system、exec、assert。反序列化入口暴露:开发者不当使用
unserialize(),未对输入做校验。配置不当:
app_debug = true在生产环境开启,泄露路径与调试信息。
安全防护与加固建议
✅ 1. 升级框架版本
最根本的解决方案是升级到 ThinkPHP 5.1.31+ 或 6.x 最新稳定版,官方已修复大部分RCE漏洞。
✅ 2. 禁用危险函数
在 php.ini 中禁用高危函数:
✅ 3. 关闭调试模式
确保生产环境 app_debug = false:
✅ 4. 过滤特殊参数
在Nginx/Apache中拦截 _method、filter 等敏感参数:
✅ 5. 代码审计与WAF防护
定期进行代码审计,避免反序列化操作
部署Web应用防火墙(WAF),如 ModSecurity、云WAF
ThinkPHP 5.0.24 作为一个历史版本,其安全漏洞已被广泛研究和利用。对于仍在使用该版本的项目,强烈建议立即升级并进行全面安全评估。作为开发者,应时刻关注框架安全公告,遵循最小权限原则,避免因小失大。
⚠️ 免责声明:本文提供的EXP仅用于合法安全测试与学习交流,禁止用于任何非法用途。因不当使用造成的后果,作者不承担任何法律责任。





















