频道栏目
首页 > 安全 > 网站安全 > 正文
dede常见漏洞以及解决方法
2013-09-06 09:27:59           
收藏   我要投稿

dede的漏洞公认的多,接手这个网站也接触了不少,现在就把几种接触到的或者了解到的漏洞记录下来,让大家可以提高警惕,防止网站被攻击。

1.dede dialog目录下的配置文件漏洞

   如果有能力的同学最好好好研究下这个目录下的文件,漏洞太多了,先只说我遇到的一处
在include/dialog下的config.php第35行

 

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中


 $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
  解决方法:

在 /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
 解决方式:
CheckRequest($_REQUEST);
在下面添加
CheckRequest($_COOKIE);

13 .dede文件包含漏洞

  漏洞文件:Include/payment/alipay.php      Include/payment/yeepay.php
    解决方式:官方有补丁

14.dede样式分享XSS漏洞

    漏洞文件plus/bshare.php
    解决方式:

plus目录下的bshare.php文件117行 $uuid = isset($uuid)? $uuid : '';改成 $uuid = isset($uuid)? htmlspecialchars($uuid) : '';

 

点击复制链接 与好友分享!回本站首页
相关TAG标签 漏洞 常见 方法
上一篇:糯米网某用户功能存在平行权限
下一篇:Shopex ctl.passport.php文件SQL注入漏洞分析报告
相关文章
图文推荐
点击排行

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站