欢迎光临
我们一直在努力

【漏洞预警】ThinkPHP5远程代码执行高危漏洞2018-12-10修复方案

2018年12月10日,阿里云云盾应急响应中心监测到ThinkPHP官方发布安全更新,披露了一个高危安全漏洞,攻击者构造特定的恶意请求,可以直接获取服务器权限,受影响的版本包括5.0和5.1版本。

漏洞描述

由于ThinkPHP5框架对控制器名没有进行足够的安全检测,导致在没有开启强制路由的情况下,黑客构造特定的请求,可直接GetWebShell。

漏洞评级

严重

影响版本

ThinkPHP 5.0系列 < 5.0.23

ThinkPHP 5.1系列 < 5.1.31

安全版本

ThinkPHP 5.0系列 5.0.23

ThinkPHP 5.1系列 5.1.31

解决方法:

查找thinkphp\library\think\App.php

// 是否自动转换控制器和操作名
$convert = is_bool($convert) ? $convert : $config['url_convert'];

// 获取控制器名
$controller = strip_tags($result[1] ?: $config['default_controller']);

加上

/* 加上这个,做输入检查: */
if (!preg_match('/^[A-Za-z0-9]*$/', $controller)) {
throw new HttpException(404, 'controller not exists:' . $controller);
} 
完整代码如下:
        // 是否自动转换控制器和操作名
        $convert = is_bool($convert) ? $convert : $config['url_convert'];

        // 获取控制器名
        $controller = strip_tags($result[1] ?: $config['default_controller']);

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

https://help.aliyun.com/noticelist/articleid/1000081331.html?spm=5176.2020520001.1004.7.2e874bd363uLuf

赞(0)
版权归原作者所有,如有侵权请告知。达维营-前端网 » 【漏洞预警】ThinkPHP5远程代码执行高危漏洞2018-12-10修复方案

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址