一、漏洞概述
1 简介
ThinkPHP[1]是为了简化企业级应用开发和敏捷 WEB 应用开发而诞生的快速、兼容而 且简单的轻量级国产 PHP 开发框架。最早诞生于 2006 年初,2007 年元旦正式更名为 ThinkPHP,幵且遵循 Apache2 开源协议发布。ThinkPHP 从诞生以来一直秉承简洁实用 的设计原则,在保持出色的性能和至简的代码的同时,也注重易用性。幵且拥有众多原创功 能和特性,在社区团队的积极参与下,在易用性、扩展性和性能方面不断优化和改进。
2018/12/10,该软件发布安全补丁[2],修复了一个安全漏洞。由于框架对控制器名没 有进行足够的检测,在没有开启强制路由的情况下(默认关闭),会导致远程代码执行漏洞。
2 影响版本
Thinkphp 5.0.0-5.0.22。 Thinkphp 5.1.0-5.1.30。
二、漏洞复现
1 复现环境
Ubuntu 18.04
Apache 2.4.6
Thinkphp 5.0.22
2 环境搭建
在 Thinkphp 官方网站下载 5.0.22 完整版[4],本地运行即可。
关闭强制路由模式,该模式默认为关闭。
application/config.php
3 复现过程及结果
访问
http://127.0.0.1/tp51/public/index.php?s=index/\think\app/invokefunction&function=ca ll_user_func_array&vars[0]=system&vars[1][]=id 可直接远程执行命令。
三、防护方案
1、升级到 Thinkphp 最新版本[5]。
2、开启强制路由模式
application/config.php
3、代码修复
对于 5.0 版本,在 thinkphp/library/think/App.php 增加过滤。
对于 5.1 版本,在 thinkphp/library/think/route/dispatch/Url.php 增加过滤。
4、使用第三方防火墙进行防护(如创宇盾[https://www.yunaq.com/cyd/])
5、技术业务咨询
知道创宇技术业务咨询热线 : 400-060-9587(政府,国有企业)、028-68360638(互联网企业)
四、相关链接
[1] Thinkphp 官方网站
http://www.thinkphp.cn
[2] 补丁详情
https://mp.weixin.qq.com/s?__biz=MjM5OTEzMzQwMA==&mid=2651667456&idx=1 &sn=746ee2b9aa2b02f6ff60ff906ec2939a&chksm=bd39b5b78a4e3ca1e40f83f2b20
知道创宇漏洞快递 Thinkphp5 控制器名过滤不严导致 getshell 漏洞应急报告 e4a32fb6cdc9e2b0f3ca64df0019108482876b78e2587c1fa&mpshare=1&scene=1&s
rcid=1210fSiB8Nl4PAsEVmqkZySb#rd
[3] Seebug 收录
https://www.seebug.org/vuldb/ssvid-97715
[4] Thinkphp5.0.22 下载地址
http://www.thinkphp.cn/down/1260.html
[5] Thinkphp 最新版下载地址 5.0.23:https://github.com/top-think/framework/releases/tag/v5.0.23 5.1.31:https://github.com/top-think/framework/releases/tag/v5.1.31
2020年09月17日,IBM发布安全公告,WebSphere Application Server中存在一个安全漏洞,该漏洞是由于WebSphere Application Server在处理XML数据时容易受到XML外部实体注入(XXE)攻击。
2020年9月22日,FastAdmin远程代码执行漏洞细节曝光,黑客登录前台会员中心,即可远程GetShell,风险极大。
2020年9月17日,VMware发布安全公告,在Spring Framework版本5.2.0-5.2.8、5.1.0-5.1.17、5.0.0-5.0.18、4.3.0-4.3.28和较旧的不受支持的版本中,发现了一个存在于Spring Framework中的反射型文件下载(Reflected File Download,RFD)漏洞(CVE-2020-5421)。
获取安全动态