自己用dedecms在阿里云上搭建了套网站,之后阿里云漏洞提示,织梦有多个漏洞需要我修复,发我邮箱,今天整理了下,我遇到的漏洞,及我修复的过程。
- 漏洞描述:dedecms的/member/soft_add.php中,对输入模板参数$servermsg1未进行严格过滤,导致攻击者可构造模版闭合标签,实现模版注入进行GETSHELL。
解决办法:打开根目录下/member/soft_add.php(在154行),
$urls .= "{dede:link islocal='1' text='{$servermsg1}'} $softurl1 {/dede:link}\r\n";
替换成:<pre name="code" class="php"> if (preg_match("#}(.*?){/dede:link}{dede:#sim", $servermsg1) != 1) { <span style="white-space:pre"> </span> $urls .= "{dede:link islocal='1' text='{$servermsg1}'} $softurl1 {/dede:link}\r\n"; }
- 漏洞描述:edecms SESSION变量覆盖导致SQL注入 /include/common.inc.php,dedecms SESSION变量覆盖导致SQL注入dedecms的/plus/advancedsearch.php中,直接从$_SESSION[$sqlhash]获取值作为$query带入SQL查询,这个漏洞的利用前提是session.auto_start = 1即开始了自动SESSION会话,需要在dedemcs的变量注册入口进行了通用统一防御,禁止SESSION变量的传入。解决办法:打开/include/common.inc.php,找到cfg_|GLOBALS|_GET|_POST|_COOKIE,一共有两处68行和90行。找到后,后面再加一个_SESSION,成
- 漏洞描述:dedecms留言板注入漏洞,/plus/guestbook/edit.inc.php
dedecms SESSION变量覆盖导致SQL注入
4,/plus/search.php,dedecms注入漏洞
//引入栏目缓存并看关键字是否有相关栏目内容
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));
5,/plus/guestbook/edit.inc.phpdedecms注入漏洞,其实就是留言版注入漏洞
没有对$msg过滤,导致可以任意注入,找到