freeBuf
主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

ThinkPHP 5.0再曝远程代码执行漏洞
2019-01-11 20:56:12

https://nosec.org/home/detail/2163.html2019年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 开发的内容管理系统的用户及时检查是否存在该漏洞。

白帽汇会持续对该漏洞进行跟进,后续可以持续关注链接https://nosec.org/home/detail/2163.html

参考

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

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

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

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

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

# 远程代码执行 # ThinkPHP 5.0
本文为 独立观点,未经允许不得转载,授权请联系FreeBuf客服小蜜蜂,微信:freebee2022
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
相关推荐
  • 0 文章数
  • 0 关注者