dede常见漏洞以及解决方法

   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 ) :  '' ;









本文转自 3147972 51CTO博客,原文链接:http://blog.51cto.com/a3147972/1287849,如需转载请自行联系原作者
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值