网站首页 > 编程文章 正文
漏洞描述
由于ThinkPHP5框架对控制器名没有进行足够的安全检测,导致在没有开启强制路由的情况下,黑客构造特定的请求,可直接GetWebShell。
漏洞评级
严重
影响版本
ThinkPHP 5.0系列 < 5.0.23ThinkPHP 5.1系列 < 5.1.31
安全版本
ThinkPHP 5.0系列 5.0.23ThinkPHP 5.1系列 5.1.31
ThinkPHP5.*版本发布安全更新
如果各种原因暂时无法更新到最新版本(早期版本升级到最新版本可能存在兼容性问题,请首先参考官方手册的升级指导章节)
漏洞注入方式(是否有漏洞测试)
1.写入文件
/index.php?s=/index/\think\app/invokefunction&function=call_user_func_array&vars[0]=file_put_contents&vars[1][]=***.php&vars[1][]=***
2.查看版本信息
/index.php?s=index/\think\app/invokefunction&function=phpinfo&vars[0]=1
index.php?s=index/think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=whoami
解决办法
手动修正
5.1版本
thinkphp/library/think/route/dispatch/Url.php 类的parseUrl方法,解析控制器后加上 添加
if ($controller && !preg_match('/^[A-Za-z](\w|\.)*$/', $controller)) {
throw new HttpException(404, 'controller not exists:' . $controller);
}
5.0版本
thinkphp/library/think/App.php 类的module方法的获取控制器的代码后面加上
if (!preg_match('/^[A-Za-z](\w|\.)*$/', $controller)) {
throw new HttpException(404, 'controller not exists:' . $controller);
}
由于我之前项目使用5.0所以只有5.0的修改截图
修改前:
修改后:
框架升级方法
进入到代码根目录 执行
composer update
注意:不推荐用这种方法直接升级,容易引起不兼容情况,如果必须特别想这样子升级修复的话 ,建议提前备份好代码。
目前thinkphp的 5.0(5.0.23) 以及 5.1(5.1.31) 的最新版本,已经修复此漏洞(很多人项目已经发布并未进行修改,强烈建议尽快修复此漏洞),建议大家项目都用目前最新版本。
猜你喜欢
- 2024-10-10 Lin-CMS 是经过大量项目实践所提炼出的一套内容管理系统框架
- 2024-10-10 在VSCode中调试ThinkPHP8.0,开启调试模式
- 2024-10-10 cmpay聚合支付系统(聚合支付产品介绍)
- 2024-10-10 thinkphp6开启调试与配置文件003(thinkphp6视频教程)
- 2024-10-10 ThinkPHP之多表联合查询(thinkphp 多表查询)
- 2024-10-10 ThinkPhp6从安装到配置全解(thinkphp 5.0.24 rce)
- 2024-10-10 ThinkPHP v5.1.x POP 链分析(thinkphp pdo)
- 2024-10-10 ThinkPHP6.0如何开启Session(thinkphp5 session)
- 2024-10-10 thinkphp6学习笔记之安装(thinkphp6下载)
- 2024-10-10 thinkphp怎么开发小程序(thinkphp开发微信小程序)
你 发表评论:
欢迎- 最近发表
-
- 数据不丢失 从Windows 11的DEV版降级到正式版
- Win11学院:在Windows11 25905预览版中如何启用Dev Drive
- DEVC++的卸载(devcon卸载驱动)
- win11 dev 开发版 升级攻略完整版
- 最新Windows11+Windows10系统各种版本永久激活密钥以及下载链接
- 想学Python,却还记不住语法?神仙书籍 python背记手册双手奉上
- 如何用Python语言开发大型服务器程序
- 30天Python 入门到精通(python零基础入门到精通)
- 入门扫盲:9本自学Python PDF书籍,让你避免踩坑,轻松变大神!
- 学好Python需要看的4本书推荐(学python好用的书)
- 标签列表
-
- spire.doc (59)
- system.data.oracleclient (61)
- 按键小精灵源码提取 (66)
- pyqt5designer教程 (65)
- 联想刷bios工具 (66)
- c#源码 (64)
- graphics.h头文件 (62)
- mysqldump下载 (66)
- sqljdbc4.jar下载 (56)
- libmp3lame (60)
- maven3.3.9 (63)
- 二调符号库 (57)
- 苹果ios字体下载 (56)
- git.exe下载 (68)
- diskgenius_winpe (72)
- pythoncrc16 (57)
- solidworks宏文件下载 (59)
- qt帮助文档中文版 (73)
- satacontroller (66)
- hgcad (64)
- bootimg.exe (69)
- android-gif-drawable (62)
- axure9元件库免费下载 (57)
- libmysqlclient.so.18 (58)
- springbootdemo (64)
本文暂时没有评论,来添加一个吧(●'◡'●)