【漏洞详情】
ThinkPHP 由于框架对控制器名没有进行足够的安全检查,存在远程代码执行漏洞,此漏洞利用难度低,危害大,成功利用后直接控制服务器并执行任意代码,请受影响的用户综合评估影响并修复漏洞。
【风险评级】
高危
【影响范围】
ThinkPHP 5.0.*全版本(3.x版本ThinkPHP不涉及此漏洞)
【修复建议】
请受影响的用户依据业务需求和实际漏洞影响评估并修复,修复方法如下
1、按如下地址下载并升级ThinkPHP补丁:
http://www.thinkphp.cn/down/1279.html
2、通过修改以下代码来缓解漏洞:
编辑 library/think/Request.php 文件, 查找并修改如下代码:
$this->method = strtoupper($_POST[Config::get('var_method')]);
$this->{$this->method}($_POST);
修改为:
$method = strtoupper($_POST[Config::get('var_method')]);
if (in_array($method, ['GET', 'POST', 'DELETE', 'PUT', 'PATCH'])) {
$this->method = $method;
$this->{$this->method}($_POST);
} else {
$this->method = 'POST';
}
unset($_POST[Config::get('var_method')]);
【参考链接】
http://www.thinkphp.cn/topic/60992.html
特别提醒:修复漏洞前请进行充分测试,并务必做好数据备份和快照,防止出现意外。
平安云
2019-1-11