织梦安全漏洞include/common.inc.php文件的漏洞解决方法

2020-03-20 漏洞修复 热度 °

漏洞描述:

目标存在全局变量覆盖漏洞。
1.受影响版本DEDECMS 5.7、5.6、5.5。
2.漏洞文件/include/common.inc.php
3.DEDECMS的全局变量初始化存在漏洞,可以任意覆盖任意全局变量。

漏洞危害:

1.黑客可以通过此漏洞来重定义数据库连接。
2.通过此漏洞进行各种越权操作构造漏洞直接写入webshell后门。

解决方案:

在 /include/common.inc.php  中
找到注册变量的代码
foreach(Array('_GET','_POST','_COOKIE') as $_request)
{
         foreach($$_request as $_k => $_v) ${$_k} = _RunMagicQuotes($_v);
}
修改为
foreach(Array('_GET','_POST','_COOKIE') as $_request)
{
         foreach($$_request as $_k => $_v) {
                    if( strlen($_k)>0 && eregi('^(cfg_|GLOBALS)',$_k) ){
                            exit('Request var not allow!');
                   }
                    ${$_k} = _RunMagicQuotes($_v);
    }
}