安恒信息
网络安全前沿资讯、 应急响应解决方案、技术热点深度解读
关注
1.漏洞描述
ThinkPHP是一个免费开源的快速、简单、面向对象的轻量级PHP开发框架,是为了敏捷Web应用开发和简化企业应用开发而诞生。ThinkPHP从诞生以来一直秉承简洁实用的设计原则,在保持出色的性能和至简的代码的同时,也注重易用性。遵循Apache2开源许可协议发布,意味着用户可以免费使用ThinkPHP,甚至允许把基于ThinkPHP开发的应用开源或商业产品发布/销售。
ThinkPHP 5.0版本是一个颠覆和重构版本,采用全新的架构思想,引入了更多的PHP新特性,优化了核心,减少了依赖,实现了真正的惰性加载,支持composer,并针对API开发做了大量的优化,包括路由、日志、异常、模型、数据库、模板引擎和验证等模块都已经重构,不适合原有3.2项目的升级。
2018年12月9日ThinkPHP官方博客发布ThinkPHP 5.*版本安全更新称,由于框架对控制器名没有进行足够的检测,会导致在没有开启强制路由的情况下可能的getshell漏洞,受影响的版本包括5.0和5.1版本,推荐尽快更新到最新版本。
2.影响范围
5.0版本的受影响范围为:小于V5.0.23版本
5.1版本的受影响范围为 :小于V5.1.31版本
3.利用前置条件
没有开启强制路由。
4.修复建议
(一)升级版本至最新版本:
当前ThinkPHP官方已经发布补丁,升级至最新版本修复该漏洞问题。
ThinkPHP 5.0.X版本,升级至最新的5.0.23版本,完整版本下载地址:
https://github.com/top-think/framework/tree/v5.0.23 或
http://www.thinkphp.cn/donate/download/id/1278.html
Think PHP5.1.X版本,升级至最新的5.1.31版本,完整版本下载地址:
https://github.com/top-think/framework/tree/v5.1.31
(二)临时缓解措施:
开启强制路由,打开以下参数配置:
(默认的配置文件,在application/config.php中)
'url_route_on' => true,
'url_route_must'=> true,
5.测试POC
可以通过以下POC,进行漏洞的有效性测试,以测试是否确实存在远程代码执行漏洞:
http://127.0.0.1:8888/index.php?s=index/\think\Request/input&data[]=id&name=0&filter=phpinfo
(注意:如果此POC未能触发phpinfo函数执行,并不代表漏洞不存在,受配置和版本影响,可能存在一定差异。强烈建议升级至最新版本)
漏洞风险不要怕
目前安恒信息
玄武盾
明御APT攻击(网络战)预警平台
扫描器产品线
均已支持对该漏洞的检测!
领取专属 10元无门槛券
私享最新 技术干货