ThinkPHP高危安全漏洞,攻击者可直接获取服务器权限,请尽快升级官方安全更新

2018年12月9日ThinkPHP官方发布一次重要安全更新,本次版本更新主要涉及一个ThinkPHP5.0.*-5.1.*的全系列安全漏洞,由于框架对控制器名没有进行足够的检测会导致在没有开启强制路由的情况下可能的getshell漏洞,也就是攻击者可以构造特定的恶意请求直接获取服务器权限。请广大ThinkPHP开发者尽快更新到该版本!

更新框架修复

如果你使用composer安装,并且一直保持最新版本使用的话,使用下面的指令更新到最新版本即可

composer update topthink/framework

如果你使用了git版本库安装,也请及时更新你所用的仓库版本。

如果各种原因暂时无法更新到最新版本(早期版本升级到最新版本可能存在兼容性问题,请首先参考官方手册的升级指导章节),可以参考下面的方式进行手动修正。

手动修复

5.0版本:在think\App类的module方法的获取控制器的代码后面加上

if (!preg_match('/^[A-Za-z](\w|\.)*$/', $controller)) {
  throw new HttpException(404, 'controller not exists:' . $controller);
}

5.1版本:在think\route\dispatch\Url类的parseUrl方法,解析控制器后加上

if ($controller && !preg_match('/^[A-Za-z](\w|\.)*$/', $controller)) {
  throw new HttpException(404, 'controller not exists:' . $controller);
}

posted on   &大飞  阅读(740)  评论(0编辑  收藏  举报

编辑推荐:
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示