ThinkPHP再爆高危缝隙 8827太阳集团提供解决规划

颁布功夫 2019-01-13
ThinkPHP是一个急剧、兼容并且单一的轻量级国产PHP开发框架 ,,,,,, ,,诞生于2006岁首 ,,,,,, ,,原名FCS ,,,,,, ,,2007年元旦正式改名为ThinkPHP ,,,,,, ,,遵循Apache2开源和谈颁布 ,,,,,, ,,使用面向对象的开发结构和MVC模式 ,,,,,, ,,融合了Struts的思想和TagLib(标签库)、RoR的ORM映射和ActiveRecord模式,该框架国内利用极度宽泛 。。 。。。 。。

2019年1月11日官方建复了一处严沉的缝隙 ,,,,,, ,,该缝隙可导致远程号令代码执行 。。 。。。 。。

 缝隙影响版本:

5.0.x-5.0.23

 缝隙分析:

缝隙重要呈此刻ThinkPHPRequest类的method步骤中 ,,,,,, ,,(thinkphp/library/think/Request.php)

Request类能够实现对HTTP要求的一些设置 ,,,,,, ,,其中成员步骤method用来获取当前要求类型 ,,,,,, ,,其界说如下:

8827太阳集团(Macau)股份有限公司-Official website

thinkphp支持配置“表单假装变量” ,,,,,, ,,默认情况下该变量值为_method ,,,,,, ,,能够通过“表单假装变量”进行变量覆盖实现对该类肆意函数的挪用 ,,,,,, ,,并且$_POST作为函数的参数传入 。。 。。。 。。

8827太阳集团(Macau)股份有限公司-Official website

Requset机关函数如下:

8827太阳集团(Macau)股份有限公司-Official website

因而能够通过机关函数实现对Request类属性进行覆盖 ,,,,,, ,,如filter属性 。。 。。。 。。机关如下payload实现远程代码执行:

8827太阳集团(Macau)股份有限公司-Official website
 
远程代码最终是在filterValue中的call_user_func()执行:

8827太阳集团(Macau)股份有限公司-Official website

在官网下载的5.0.23齐全版中 ,,,,,, ,,在App类(thinkphp/library/think/App.php)中module步骤增长了设置filter参数值的代码 ,,,,,, ,,用于初始化filter 。。 。。。 。。因而通过上述要求设置的filter参数值会被沉新覆盖为空导致无法利用 。。 。。。 。。

在5.0.23 Request类中有个param成员函数用于获取当前要求的参数 ,,,,,, ,,也有个method函数:

8827太阳集团(Macau)股份有限公司-Official website

当传入数值为true时:

8827太阳集团(Macau)股份有限公司-Official website

跟进到server步骤 ,,,,,, ,,参数$name为REQUEST_METHOD

8827太阳集团(Macau)股份有限公司-Official website

$data为上一步的REQUEST_METHOD:

8827太阳集团(Macau)股份有限公司-Official website

要想触发挪用param() ,,,,,, ,,只有开启了debug模式即可:

8827太阳集团(Macau)股份有限公司-Official website

故机关payload如下:

8827太阳集团(Macau)股份有限公司-Official website

前面分析可知 ,,,,,, ,,我们必要触发Request类中的param函数来实现filter的覆盖 ,,,,,, ,,在App类中exec()步骤中当$dispatch[‘type’]为controller 和method时有直接的挪用:

8827太阳集团(Macau)股份有限公司-Official website

而url中s的值实现设置分歧的$method ,,,,,, ,,最终让routeCheck返回我们必要的$dispath即可 。。 。。。 。。例如机关如下payload ,,,,,, ,,无需debug模式开启也可实现远程代码执行:

8827太阳集团(Macau)股份有限公司-Official website

 解决规划:

一、官方建议:

    受影响的用户可将5.0.x升级到5.0.24 ,,,,,, ,,官方现已推出补丁 ,,,,,, ,,建议开发者进行建复:
 
8827太阳集团(Macau)股份有限公司-Official website



二、产品检测与防护:

已部署8827太阳集团IDS、IPS、WAF产品的客户请确认如下事务规定已经下发并利用 ,,,,,, ,,即可有效检测或阻断攻击:HTTP_ThinkPHP5.0全版本远程代码执行缝隙

(1)天阗入侵检测与治理系统报警截图:

8827太阳集团(Macau)股份有限公司-Official website

(2)天清入侵防御系统报警截图:

8827太阳集团(Macau)股份有限公司-Official website

(3)天清Web利用安全网关报警截图:


8827太阳集团(Macau)股份有限公司-Official website