thinkphp 远程执行漏洞修复方案_漏洞预警 | ThinkPHP 5.15.2远程命令执行漏洞

本文介绍了ThinkPHP 5.1.x版本存在的远程代码执行漏洞,详细分析了漏洞成因,展示了如何通过POST请求触发漏洞,并提供了具体的修复方案,包括代码修改建议和漏洞排查步骤。
摘要由CSDN通过智能技术生成

   关注圣博润了解更多!

279e8f23a0be7f46d56939a3ebb59d04.png

ThinkPHP简介

ThinkPHP采用面向对象的开发结构和MVC模式,融合了Struts的思想和TagLib(标签库)、RoR的ORM映射和ActiveRecord模式,是一款兼容性高、部署简单的轻量级国产PHP开发框架。

近期ThinkPHP 5.0.0-5.0.23已被爆出存在远程代码执行漏洞,通过分析发现thinkphp5.1.X版本同样存在远程代码执行漏洞。

 1 

漏洞描述

8a7fa0de521f781125c4ed05ed640944.png

 2 

漏洞利用

该漏洞存在于

\thinkphp\library\think\Request.php文件中,核心代码如图所示:

75cfdc6a4d34d720ccfd5c9f1b2f40d9.png

在上一篇文章(ThinkPHP 5.0.X远程代码执行漏洞预警分析),已经分析漏洞点存在于var_method,可以通过post方式发送,而var_method可用伪变量_method表示,即可以实现任意请求类型。5.1-5.2也存在这个漏洞点。

查找下filter,通过post方式对filter覆盖变量赋值到input方法中:

e40b6f6b40a656b8c69a3348715c4a1f.png

对$filter进行重新赋值

94ef5e3041c90180e36ce3ad0f1bc61b.png

查看一下filterValue

f7c1f5e887942d7b5d76481744196e24.png

发现call_user_func,控制$filter和$value即可实现代码执行,构建payload为:

a=system&b=whoami&_method=filter

搭建本地环境验证,尝试执行whoami命令,如下图所示:

7327a8577b476537853819b069b209f9.png

 3 

修复方案

用户可通过查看README.md文件,进行漏洞版本排查。

使用thinkphp5.1.X的用户可以对\thinkphp\library\think\Request.php文件中的method函数做以下修改

dde045fa4b3f4ce4a68ac8abb63424ac.png

修改代码之后,只允许执行图中五种方法,以保证变量在可控范围之内,然后保存重启环境。

 4 

资料参考

  1. proxy.boomeye.com:19300/wordpress/index.php/2019/01/15/thinkphp5-1-5-2-rec/?from=timeline&isappinstalled=0

  2. https://mp.weixin.qq.com/s/C4BoKGZ7j7s3SOs-FyFZAA

检索最新漏洞信息

提供漏洞预警、通告及响应服务

作为一家专业的网络安全服务供应商

圣博润特别注重对最新安全漏洞的发现和追踪

以“及时性、准确性、层次性”为宗旨

为用户提供漏洞预警、通告及响应服务

6ac19519a6bb58880291d09e61afa4d0.png
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值