漏洞描述:

dedecms变量覆盖导致注入漏洞。

 

存在漏洞的文件/plus/search.php,找到以下代码

//引入栏目缓存并看关键字是否有相关栏目内容

require_once($typenameCacheFile);

if(isset($typeArr) && is_array($typeArr))

{

foreach($typeArr as $id=>$typename)

{

$keywordn = str_replace($typename, ‘ ‘, $keyword);

if($keyword != $keywordn)

{

$keyword = $keywordn;

$typeid = $id; //对ID没做任何过滤 导致注入

break;

}

}

}

}

$keyword = addslashes(cn_substr($keyword,30));


替换为以下代码:

//引入栏目缓存并看关键字是否有相关栏目内容

require_once($typenameCacheFile);

if(isset($typeArr) && is_array($typeArr))

{

foreach($typeArr as $id=>$typename)

{

//$keywordn = str_replace($typename, ‘ ‘, $keyword);

$keywordn = $keyword;

if($keyword != $keywordn)

{

$keyword = HtmlReplace($keywordn);//防XSS

$typeid = intval($id); //强制转换为数字型

break;

}

}

}

}

$keyword = addslashes(cn_substr($keyword,30));