ThinkPHP 5.x远程命令执行漏洞 补丁
- 作者: 五速梦信息网
- 时间: 2026年03月19日 18:00
手动修复5.0版本
在think\App类的module方法的获取控制器的代码后面加上
if (!preg_match(‘/^A-Za-z*\(/', \)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);
}
if (!preg_match(‘/^[A-Za-z][\w.]\(/', \)controller)) { throw new HttpException(404, ’controller not exists:‘ . $controller); }preg_match(’/^A-Za-z\(/', \)controller)
这个正则表达式, 确实存在问题.
- (\w)这个捕获分组是没有意义的
- 这里应该采用占用优先匹配, 来提高效率. 避免回溯.
下面这种方式, 会更好一些.
preg_match(‘/^[A-Za-z]\w*+\(/', \)controller)相关文章
-
微信开发之分清公众平台和开放平台、公众号全局凭证和网页授权凭证
微信开发之分清公众平台和开放平台、公众号全局凭证和网页授权凭证
- 技术栈
- 2026年03月19日
-
Python作为PHP的扩展——ppython简介
Python作为PHP的扩展——ppython简介
- 技术栈
- 2026年03月19日
-
php 实现信息采集(网页内容抓取)程序代码
php 实现信息采集(网页内容抓取)程序代码
- 技术栈
- 2026年03月19日
-
一个api 小程序的大致实现写法
一个api 小程序的大致实现写法
- 技术栈
- 2026年03月19日
-
htmlspecialchars() 函数过滤XSS的问题
htmlspecialchars() 函数过滤XSS的问题
- 技术栈
- 2026年03月19日
-
IPinfo 多接口IP查询工具源码
IPinfo 多接口IP查询工具源码
- 技术栈
- 2026年03月19日
