ThinkPHP是一个快速、兼容而且简单的轻量级国产PHP开发框架,2020年1月10日,ThinkPHP官方发布了ThinkPHP v6.0.2的版本更新,该次更新修正sessionid检查的一处隐患,该隐患可导致任意文件操作漏洞。
漏洞名称:ThinkPHP 6.0.0 - 6.0.1 任意文件操作漏洞
威胁等级:高危
影响范围:ThinkPHP 6.0.0-ThinkPHP 6.0.1
漏洞类型:任意文件操作
利用难度:较难
漏洞分析
1 ThinkPHP组件介绍
ThinkPHP是一个快速、兼容而且简单的轻量级国产PHP开发框架,诞生于2006年初,原名FCS,2007年元旦正式更名为ThinkPHP,遵循Apache 2开源协议发布,从Struts结构移植过来并做了改进和完善,同时也借鉴了国外很多优秀的框架和模式,使用面向对象的开发结构和MVC模式,融合了Struts的思想和TagLib(标签库)、RoR的ORM映射和ActiveRecord模式。ThinkPHP可以支持windows/Unix/Linux等服务器环境,正式版需要PHP 5.0以上版本支持,支持MySql、PgSQL、Sqlite多种数据库以及PDO扩展,ThinkPHP框架本身没有什么特别模块要求,具体的应用系统运行环境要求视开发所涉及的模块决定。
ThinkPHP 6.0基于精简核心和统一用法两大原则在5.1的基础上对底层架构做了进一步的优化改进,并更加规范化。由于引入了一些新特性,ThinkPHP6.0运行环境要求PHP7.1+,不支持5.1的无缝升级。
2 漏洞描述
2020年1月10日,ThinkPHP官方发布了ThinkPHP v6.0.2的版本更新,该次更新修正sessionid检查的一处隐患,该隐患可导致任意文件操作漏洞。该漏洞允许攻击者在目标环境已启用了session的前提下,创建任意文件及删除任意文件,并且在特定的环境下,还可以getshell。
该漏洞是在存储session时导致的文件写入,当目标环境中开启了session功能,攻击者利用Cookie中的PHPSESSID值来创建任意文件。
3 漏洞复现
搭建ThinkPHP v6.0.0漏洞环境后,创建特定的Index controller后,复现漏洞:
影响范围
1 影响版本
目前受影响的ThinkPHP版本:ThinkPHP 6.0.0-6.0.1
2 影响范围
根据全网数据统计,使用ThinkPHP的网站多达33万余个,其中大部分集中在国内,约占使用量的75%以上。其中,浙江、北京、广东三省使用量最高,下边统计图中展示了ThinkPHP在国内使用量前十的地域。
修复建议
官方发布的最新版本已经修复了此漏洞,请受影响的用户下载最新版本防御此漏洞。
下载链接:
https://github.com/top-think/framework
深信服解决方案
【深信服下一代防火墙】可轻松防御此漏洞, 建议部署深信服下一代防火墙的用户开启WAF安全防护,可轻松抵御此高危风险。
【深信服云盾】已第一时间从云端自动更新防护规则,云盾用户无需操作,即可轻松、快速防御此高危风险。
【深信服安全感知平台】可检测利用该漏洞的攻击,实时告警,并可联动【深信服下一代防火墙等产品】实现对攻击者ip的封堵。
时间轴
2020/1/10
ThinkPHP官方团队在ThinkPHP v 6.0.2版本发布一则更新,该更新更新修正sessionid检查的一处隐患,该隐患会导致任意文件操作漏洞。
2020/1/21
深信服千里目安全实验室成功复现此漏洞。
点击阅读原文,及时关注深信服智安全Wiki平台查询漏洞的产品解决方案(需登录)~
原文始发于微信公众号(深信服千里目安全实验室):ThinkPHP 6.0.0 - 6.0.1 任意文件操作漏洞
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论