8

【漏洞预警】ThinkPHP 5.0再曝远程代码执行漏洞

 2 years ago
source link: https://nosec.org/home/detail/2163.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

【漏洞预警】ThinkPHP 5.0再曝远程代码执行漏洞

headImg.pngiso60001  1202天前

88.jpg

2019年1月11日,白帽汇安全研究院发现thinkphp官网发布了安全更新,修复了一个远程代码执行漏洞。主要影响的版本为5.0.0~5.0.23版本。

此次爆出漏洞的ThinkPHP 5.x版本是官方于2015年发布的新一代框架,其中5.0版本于2016年的9月份布。在不久之前,ThinkPHP 5.x版本就曝出远程代码执行漏洞。短短两三个月后,ThinkPHP 5.0 就又曝出了新的远程代码执行漏洞,这说明其框架在安全方面有较大缺陷,预计在日后会遭受更严峻的考验。

ThinkPHP诞生于2006年,是一个国产开源的PHP开发框架,其借鉴了Struts框架的Action对象,同时也使用面向对象的开发结构和MVC模式。ThinkPHP可在Windows和Linux等操作系统运行,支持MySql,Sqlite和PostgreSQL等多种数据库以及PDO扩展,是一款跨平台,跨版本以及简单易用的PHP框架。

目前FOFA系统最新数据(一年内数据)显示全球范围内共有266459个ThinkPHP网站对外开放服务。中国大陆地区使用数量最多,共有143230台,美国第二,共有46348台,中国香港特别行政区第三,共有15453台,印度尼西亚第四,共有4969台。

全球范围内ThinkPHP网站分布情况(仅为分布情况,非漏洞影响情况)

1.jpg

中国大陆地区浙江省使用用数量最多,共有81746台;北京市第二,共有25961台,广东省第三,共有6899台,上海市第四,共有3963台,四川省第五,共有3767台。

中国大陆范围内ThinkPHP网站分布情况(仅为分布情况,非漏洞影响情况)

2.jpg

严重

本次以5.0.20版本为例。

本次漏洞触发点在Request.php文件里的method方法中,该方法的功能主要是判断请求类型。

111111.jpg

跟进method方法,这里判断是否存在'var_method',如果存在则执行$this->{$this->method}($_POST);

333.jpg

在config.php中,可以看到 'var_method' 是表单请求伪变量,其默认值为 '_method'。

111.png

这里可以POST _method=__construct用构造函数来进行变量覆盖,实现命令执行。

在构造函数中,会判断其传入参数的key是否是该类属性,如果是,则将对应的value赋值给该属性,可以进行变量覆盖。

444.jpg

再看全局过滤函数filtervalue,根据上一步的变量覆盖,POST filter[]=system,将$filter赋值为array('system'),同时POST 123456=whoami,触发过滤函数,调用call_user_func方法,执行whoami命令。

555.jpg

复现结果:

222.jpg

目前漏洞影响版本号包括:

5.x <= 5.0.23

以下基于ThinkPHP 5 二次开发的内容管理系统,很可能受到该漏洞影响,建议厂商及时更新。

AdminLTE后台管理系统
layui后台管理系统
thinkcmf
H-ui.admin后台管理系统
tpshop
FsatAdmin
eyoucms
LarryCMS后台管理系统
tpadmin后台管理系统
snake后台管理系统
ThinkSNS
DolphinPHP后台管理系统
WeMall商城系统
CLTPHP
齐博CMS
DSMALL
YFCMF
HisiPHP后台管理系统
Tplay后台管理系统
lyadmin后台管理系统
haoid后台管理系统

漏洞POC

目前FOFA客户端平台已经更新该ThinkPHP漏洞的检测POC。

POC截图

图片.png

CVE编号

暂无

1、官网已发布安全更新,用户可以通过网址http://www.thinkphp.cn/topic/60992.html获得。

2、如暂时无法更新到最新版本,建议直接参考最新版本的Request类的method方法进行手动修复。参考网址:https://blog.thinkphp.cn/910675

3、建议使用以上ThinkPHP 5 开发的内容管理系统的用户及时检查是否存在该漏洞。

[1] https://baike.baidu.com/item/thinkphp/3521908?fr=aladdin

[2] https://blog.thinkphp.cn/910675

[3] http://www.thinkphp.cn/

白帽汇从事信息安全,专注于安全大数据、企业威胁情报。

公司产品:FOFA-网络空间安全搜索引擎、FOEYE-网络空间检索系统、NOSEC-安全讯息平台。

为您提供:网络空间测绘、企业资产收集、企业威胁情报、应急响应服务。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK