dede的漏洞公认的多,接手这个网站也接触了不少,现在就把几种接触到的或者了解到的漏洞记录下来,让大家可以提高警惕,防止网站被攻击。
1.dede dialog目录下的配置文件漏洞
如果有能力的同学最好好好研究下这个目录下的文件,漏洞太多了,先只说我遇到的一处
在include/dialog下的config.php第35行
1
2
3
4
5
6
7
8
9
10
11
12
|
if
(
$cuserLogin
->getUserID() <=0 )
{
if
(
empty
(
$adminDirHand
))
{
ShowMsg(
"<b>提示:需输入后台管理目录才能登录</b><br /><form>请输入后台管理目录名:<input type='hidden' name='gotopage' value='"
.urlencode(
$dedeNowurl
).
"' /><input type='text' name='adminDirHand' value='dede' style='width:120px;' /><input style='width:80px;' type='submit' name='sbt' value='转入登录' /></form>"
,
"javascript:;"
);
exit
();
}
$adminDirHand
= HtmlReplace(
$adminDirHand
, 1);
$gurl
=
"../../{$adminDirHand}/login.php?gotopage="
.urlencode(
$dedeNowurl
);
echo
"<script language='javascript'>location='$gurl';</script>"
;
exit
();
}
|
修改方案:$gurl = "../../{$adminDirHand}/login.php?gotopage=".urlencode($dedeNowurl);上面添加如下语句:
$adminDirHand = HtmlReplace($adminDirHand, 1);
2.dede group.php页面sql注入漏洞
具体在group/global.inc.php中
1
|
$db
->SetQuery(
"SELECT G.groupname,G.groupid,G.des,G.groupimg FROM #@__group_user AS U LEFT JOIN #@__groups AS G ON U.gid=G.groupid WHERE U.uid IN({$_GROUPS['_vars']['mids']}) AND U.isjoin=1 AND U.gid<>$id LIMIT 0,6"
);
|
$id直接来自用户的输入。应该给$id加过滤
3.dede 5.7版本sql注入漏洞
漏洞位置:/member/ajax_membergroup.php
漏洞原因:没有对membergroup变量进行过滤
4.wap跨站攻击
漏洞文件:wapphp第39行
解决方式:echo htmlspecialchars($pageBody);
5.dede搜索模块sql注入
漏洞文件 : plus/search.php文件存在变量覆盖漏洞,导致$typeid能被二次覆盖,产生sql注入漏洞。
解决方式:官网下载补丁吧.
6.dede 5.6版本任意sql注入漏洞
原因:形成原因:由于dedecmsv5.6的全局机制可以任意给其赋值,而且高级搜索功能/plus/advancedsearch.php中的$sql变量未初始化,导致高级搜索功能可以绕过模板定义直接执行任意SQL语句。
解决方法:对高级搜索功能/plus/advancedsearch.php中的$sql变量初始化
7.dede全局变量漏洞:
漏洞文件:include/common.inc.php
解决方法:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
在 /
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
);
}
}
|
8.dede feedback.php页面漏洞
原因:DedeCMS的plus\feedback.php中对变量 $typeid未做过滤,导致SQL注入漏洞。
解决方式:官方有补丁
9.dede变量覆盖漏洞,安装完了删除了install就解决了
10.dede圈子搜索漏洞
漏洞页面:/group/search.php
解决方式:第16行:
1
|
$keyword
= htmlspecialchars(
addslashes
(
$keyword
));
|
11.dede官方源码漏洞
源码文件:include/shopcar.class.php文件第8行:
解决方式:删除@eval(file_get_contents('php://input'));
12.dede新版本变量覆盖漏洞
文件include/common.inc.php
解决方式:
1
2
3
|
CheckRequest($_REQUEST);
在下面添加
CheckRequest($_COOKIE);
|
13 .dede文件包含漏洞
漏洞文件:Include/payment/alipay.php Include/payment/yeepay.php
解决方式:官方有补丁
14.dede样式分享XSS漏洞
漏洞文件plus/bshare.php
解决方式:
1
|
plus目录下的bshare.php文件117行
$uuid
= isset(
$uuid
)?
$uuid
:
''
;改成
$uuid
= isset(
$uuid
)? htmlspecialchars(
$uuid
) :
''
;
|