天天看点

dede常见漏洞以及解决方法

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

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

   如果有能力的同学最好好好研究下这个目录下的文件,漏洞太多了,先只说我遇到的一处

在include/dialog下的config.php第35行

1

2

3

4

5

6

7

8

9

10

11

12

<code>if</code><code>(</code><code>$cuserLogin</code><code>-&gt;getUserID() &lt;=0 )</code>

<code>{</code>

<code>    </code><code>if</code><code>(</code><code>empty</code><code>(</code><code>$adminDirHand</code><code>))</code>

<code>    </code><code>{</code>

<code>        </code><code>ShowMsg(</code><code>"&lt;b&gt;提示:需输入后台管理目录才能登录&lt;/b&gt;&lt;br /&gt;&lt;form&gt;请输入后台管理目录名:&lt;input type='hidden' name='gotopage' value='"</code><code>.urlencode(</code><code>$dedeNowurl</code><code>).</code><code>"' /&gt;&lt;input type='text' name='adminDirHand' value='dede' style='width:120px;' /&gt;&lt;input style='width:80px;' type='submit' name='sbt' value='转入登录' /&gt;&lt;/form&gt;"</code><code>, </code><code>"javascript:;"</code><code>);</code>

<code>        </code><code>exit</code><code>();</code>

<code>    </code><code>}</code>

<code>    </code><code>$adminDirHand</code> <code>= HtmlReplace(</code><code>$adminDirHand</code><code>, 1);</code>

<code>    </code><code>$gurl</code> <code>= </code><code>"../../{$adminDirHand}/login.php?gotopage="</code><code>.urlencode(</code><code>$dedeNowurl</code><code>);</code>

<code>    </code><code>echo</code> <code>"&lt;script language='javascript'&gt;location='$gurl';&lt;/script&gt;"</code><code>;</code>

<code>    </code><code>exit</code><code>();</code>

<code>}</code>

修改方案:$gurl = "../../{$adminDirHand}/login.php?gotopage=".urlencode($dedeNowurl);上面添加如下语句:

$adminDirHand = HtmlReplace($adminDirHand, 1);

2.dede group.php页面sql注入漏洞

   具体在group/global.inc.php中

<code>$db</code><code>-&gt;SetQuery(</code><code>"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&lt;&gt;$id LIMIT 0,6"</code><code>);</code>

$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

  解决方法:

13

14

15

16

<code>在 /</code><code>include</code><code>/common.inc.php  中</code>

<code>找到注册变量的代码</code>

<code>foreach</code><code>(Array(</code><code>'_GET'</code><code>,</code><code>'_POST'</code><code>,</code><code>'_COOKIE'</code><code>) </code><code>as</code> <code>$_request</code><code>)</code>

<code>         </code><code>foreach</code><code>($</code><code>$_request</code> <code>as</code> <code>$_k</code> <code>=&gt; </code><code>$_v</code><code>) ${</code><code>$_k</code><code>} = _RunMagicQuotes(</code><code>$_v</code><code>);</code>

<code>修改为</code>

<code>         </code><code>foreach</code><code>($</code><code>$_request</code> <code>as</code> <code>$_k</code> <code>=&gt; </code><code>$_v</code><code>) {</code>

<code>                    </code><code>if</code><code>( </code><code>strlen</code><code>(</code><code>$_k</code><code>)&gt;0 &amp;&amp; </code><code>eregi</code><code>(</code><code>'^(cfg_|GLOBALS)'</code><code>,</code><code>$_k</code><code>) ){</code>

<code>                            </code><code>exit</code><code>(</code><code>'Request var not allow!'</code><code>);</code>

<code>                   </code><code>}</code>

<code>                    </code><code>${</code><code>$_k</code><code>} = _RunMagicQuotes(</code><code>$_v</code><code>);</code>

8.dede feedback.php页面漏洞

   原因:DedeCMS的plus\feedback.php中对变量 $typeid未做过滤,导致SQL注入漏洞。

   解决方式:官方有补丁

9.dede变量覆盖漏洞,安装完了删除了install就解决了

10.dede圈子搜索漏洞

漏洞页面:/group/search.php

解决方式:第16行:

<code>$keyword</code> <code>= htmlspecialchars(</code><code>addslashes</code><code>(</code><code>$keyword</code><code>));</code>

11.dede官方源码漏洞

源码文件:include/shopcar.class.php文件第8行:

 解决方式:删除@eval(file_get_contents('php://input'));

12.dede新版本变量覆盖漏洞

 文件include/common.inc.php

 解决方式:

<code>CheckRequest($_REQUEST);</code>

<code>在下面添加</code>

<code>CheckRequest($_COOKIE);</code>

13 .dede文件包含漏洞

  漏洞文件:Include/payment/alipay.php      Include/payment/yeepay.php

    解决方式:官方有补丁

14.dede样式分享XSS漏洞

    漏洞文件plus/bshare.php

    解决方式:

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

本文转自 3147972 51CTO博客,原文链接:http://blog.51cto.com/a3147972/1287849,如需转载请自行联系原作者