您的位置:首页 > 数据库

dedecms SESSION变量覆盖导致SQL注入漏洞修补方案

2017-05-03 10:25 806 查看
dedecms的/plus/advancedsearch.php中,直接从$_SESSION[$sqlhash]获取值作为$query带入SQL查询,这个漏洞的利用前提是session.auto_start = 1即开始了自动SESSION会话。

危害:

1.黑客可以通过此漏洞来重定义数据库连接。

2.通过此漏洞进行各种越权操作构造漏洞直接写入webshell后门。

云盾团队在dedemcs的变量注册入口进行了通用统一防御,禁止SESSION变量的传入,修复方法如下:

用文本编辑器打开/mnt/www/xiaoshuo/include/common.inc.php文件

一、搜索下面的字串

(cfg_|GLOBALS|_GET|_POST|_COOKIE)

替换为

(cfg_|GLOBALS|_GET|_POST|_COOKIE|_SESSION)


有两处`可以都替换一下`

二、搜索如下代码:

foreach(Array('_GET','_POST','_COOKIE') as $_request)
{
foreach($_request as $_k => $_v)
{
if($_k == 'nvarname') ${$_k} = $_v;
else ${$_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);
}
}


这样SESSION变量覆盖导致SQL注入漏洞已经解决了!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: