thinkphp5+远程代码执行_ThinkPHP5.0.x远程命令执行高危漏洞预警

本文介绍ThinkPHP框架,它是国产轻量级PHP开发框架,国内应用广泛。阐述其远程代码执行漏洞原理,攻击者可构造请求覆盖属性实现代码执行。以5.0.22版本为例复现漏洞,给出影响范围,还提供官方补丁和H3C解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

ce6ace1e809eaf1bb1ecc9ae155264d4.png

漏洞综述

关于ThinkPHP

ThinkPHP是一个快速、兼容而且简单的轻量级国产PHP开发框架,其借鉴了国外很多优秀的框架和模式,包括使用面向对象的开发结构和MVC模式,融合了Struts的思想和TagLib(标签库)、RoR的ORM映射和ActiveRecord模式等。该框架常被用来进行二次开发,国内应用非常广泛。

漏洞原理

Thinkphp处理请求的关键类为Request(thinkphp/library/think/Request.php),该类可以实现对HTTP请求的一些设置。

Thinkphp支持配置“表单伪装变量”,默认情况下该变量值为_method,因此在method()中,可以通过“表单伪装变量”进行变量覆盖实现对该类任意函数的调用,并且$_POST作为函数的参数传入。所以可以构造请求来实现对Request类属性值的覆盖,例如覆盖filter属性(filter属性保存了用于全局过滤的函数),从而实现代码执行。

2019年1月11日,Thinkphp官方在Github中进行了更新,修补了该远程命令执行漏洞,该漏洞利用较为简单,恶意攻击者可通过自动化工具进行全网扫描,写入webshell后门,建议使用到该框架的用户及时做好防护修复措施。

漏洞复现

以Thinkphp5.0.22版本为例,提交带恶意参数的url,可以做到命令执行的效果,如下执行dir命令查看目录文件:

a14752f6dd3fa25ec870bb37d774aaa1.png

影响范围

ThinkPHP 5.0.x – 5.0.23

处置方法

(1)官方补丁

参照官方在github上的更新修改library/think/Request.php文件并关闭调试模式。

Github地址:

https://github.com/top-think/framework/commit/4a4b5e64fa4c46f851b4004005bff5f3196de003

(2)H3C解决方案

新华三IPS规则库将在1.0.62版本支持对该漏洞的拦截,建议关注新华三官网及时升级版本并使能相关规则。

声明

本安全公告仅用来描述可能存在的安全问题,未经新华三大安全允许,不得任意修改或者增减此安全公告内容,不得以任何方式将其用于商业目的。由于传播、利用此安全公告所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,新华三大安全以及安全公告作者不为此承担任何责任。新华三大安全拥有对此安全公告的修改和解释权。如欲转载或传播此安全公告,必须保证此安全公告的完整性,包括版权声明等全部内容。

关于新华三大安全

新华三集团在安全领域拥有十余年的经验积累,拥有1000多项信息安全领域专利技术,具备业界最全面的安全交付能力,可提供近300款产品和专业的安全咨询评估服务团队,并且具备以客户为导向的需求快速响应能力,从底层信息安全基础设施到顶层设计为国家和企业提供安全可信的防护。1953b763370a055553848bee782046bd.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值