thinkphp v5.0.11漏洞_ThinkPHP 5.0.* 远程命令执行漏洞预警

360-CERT 发布报告指出 ThinkPHP 5.0.x 版本存在远程命令执行漏洞,影响范围包括 5.0.23 之前的版本。漏洞允许攻击者通过伪装的表单请求类型变量覆盖属性,执行任意代码。官方已发布补丁更新,建议受影响的用户尽快更新。详细分析涉及 Request 类的 method 方法和 filter 属性,时间线显示漏洞发现到修复的过程。
摘要由CSDN通过智能技术生成
69e8438c77e4d9e5c66287b4e968e607.png

报告编号:B6-2019-011101

报告来源:360-CERT

报告作者:360-CERT

更新日期:2019-01-11

0x00 事件背景

2019年1月11日,360CERT发现某安全社区出现关于ThinkPHP5 RCE漏洞的威胁情报,不久之后ThinkPHP5官方与GitHub发布更新。

该更新修复了一处严重漏洞,该漏洞可导致远程命令代码执行

0x01 影响范围

ThinkPHP 5.0.x

  • 5.0.x ~ 5.0.23

0x02 修复建议

官方在GitHub中进行了更新:版本更新

在method方法中添加如下代码:

unset($_POST[Config::get('var_method')]);
02edf7f58715a5e0b01352c38ab5ec56.png

0x03 漏洞验证

由于该漏洞危害高,影响严重,暂不公布详情。

9b08415b8a25e76e518de249e17fc039.png

0x04 漏洞分析

漏洞主要出现在ThinkPHP Request类的method方法中 (thinkphp/library/think/Request.php)

4403d1f2075004f4994c2ba72e7975c6.png

由于ThinkPHP 在默认的配置中支持配置“表单请求类型伪装变量”,默认情况下该变量值为:_method

8e0e807f62223bcd659932c487bbe16a.png

因此可以用$_POST作为函数的参数,利用method方法,通过“表单请求类型伪装变量”进行变量覆盖实现对该类任意函数的调用。

Request类的构造函数中,主要对$option数组进行遍历,当$option的键名为该类属性时,则将该类同名的属性赋值为$options中该键的对应值。

因此可以构造请求来实现对Request类属性值的覆盖,例如覆盖filter属性。filter属性保存了用于全局过滤的函数。

9b08415b8a25e76e518de249e17fc039.png

0x05 时间线

2019-01-11 11:20 360CERT发现漏洞威胁情报

2019-01-11 16:05 ThinkPHP发布补丁更新

2019-01-11 16:30 360CERT发布预警分析

0x06 参考链接

  1. ThinkPHP5 github更新

https://github.com/top-think/framework/commit/c255c22b2f5fa30f320ecf6c1d29f7740eb3e8be

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值