钻磊博客

钻磊博客
钻磊人生路

二级域名分发 ThinkPHP5远程代码执行高危漏洞(附带修复方法)

这几天做主机(idc.txizd.cn),因为部分朋友要使用国内主机,但是没有备案域名,我又有几个备案域名没有使用,就百度了个二级域名分发源码搭建了个域名分发网站(dns.txizd.cn)给大家使用,今天晚上突然发现网站信息被篡改,用户账号密码被删除。这才想起来之前有朋友说ThinkPHP5.0与5.11有远程代码执行高危漏洞,二级域名分发源码又是使用ThinkPHP5.0开发的。
-----------------------------------------------------------------------------------------------------------
找了一下影响版本有:
ThinkPHP 5.0系列 < 5.0.23
ThinkPHP 5.1系列 < 5.1.31

安全版本:
ThinkPHP 5.0系列 5.0.23
ThinkPHP 5.1系列 5.1.31

建议:最好更新到安全版本

果各种原因暂时无法更新到最新版本(早期版本升级到最新版本可能存在兼容性问题,请首先参考官方手册的升级指导章节)
-----------------------------------------------------------------------------------------------------------
我不敢直接升级最新版本,怕出问题。所以找了下手动修正方法。

手动修正方法:
5.0版本
thinkphp/library/think/App.php  类的module方法的获取控制器的代码后面加上
if (!preg_match('/^[A-Za-z](\w|\.)*$/', $controller)) {
    throw new HttpException(404, 'controller not exists:' . $controller);
}
ThinkPHP5.0版本修改方法
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);
}
因为二级域名分发源码又是使用ThinkPHP5.0开发的这里所以这里就不加5.1的图片了。

×

感谢您的支持,我们会一直保持!

扫码支持
请土豪扫码随意打赏

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

打赏作者
版权所有,转载注意明处:钻磊博客 » 二级域名分发 ThinkPHP5远程代码执行高危漏洞(附带修复方法)
标签: 漏洞修复

发表评论

表情

网友评论(0)