dedecms漏洞注入。

发布时间:2019-04-05作者:小灵龙点击:148

1,dedecms留言板注入漏洞。/plus/guestbook/edit.inc.php
   
    一般用不上,删除目录即可。
   如果要修改就在55行左右添加对$msg的有效过滤。$msg=addslashes($msg);


3,DedeCMS v5.7 注册用户任意文件删除漏洞

dedecms前台任意文件删除(需要会员中心),发表文章处,对于编辑文章的时候图片参数处理不当,导致了任意文件删除
./member/inc/archives_check_edit.php
找到92行 将

    $litpic =$oldlitpic;

替换成:

    $litpic =$oldlitpic;
if (strpos( $litpic, '..') !== false || strpos( $litpic, $cfg_user_dir."/{$mid}/" ) === false) exit('not allowed path!');



4,dedecms SQL注入漏洞

dedecms的/dedecms/member/album_add.php文件中,对输入参数mtypesid未进行int整型转义,导致SQL注入的发生。
 
打开dedecms/member/album_add.php文件,查找以下代码(大约220行左右)

$description = HtmlReplace($description, -1);//2011.06.30 增加html过滤

将上面的代码替换为:

    $description = HtmlReplace($description, -1);//2011.06.30 增加html过滤
    $mtypesid = intval($mtypesid);

5,  dedecms过滤逻辑不严导致上传漏洞。

文件/include/uploadsafe.inc.php。


  搜索 $image_dd = @getimagesize($$_key);(大概在53行左右)

      替换成

    $image_dd = @getimagesize($$_key);
      if($image_dd == false){ continue; }   


6,dedecms变量覆盖漏洞

dedecms变量未初始化导致本地变量注入。

修改/include/dedesql.class.php页面第595行 加入以下代码
 $arrs1 = array();
  $arrs2 = array();
        if (isset($global['arrs1']))
        {
            $v1 = $v2 = '';
            for ($i=0;isset($arrs1[$i]);$i++)
            {
                $v1 .= chr($arrs1[$i]);
            }
                        $v1 = $v2 = '';
            for ($i=0;isset($arrs2[$i]);$i++)
            {
                $v2 .= chr($arrs2[$i]);
            }
            $global[$v1] . = $v2;
        }

7,dedecms SESSION变量覆盖导致SQL注入

dedecms的/plus/advancedsearch.php中,直接从$_SESSION[$sqlhash]获取值作为$query带入SQL查询,
这个漏洞的利用前提是session.auto_start = 1即开始了自动SESSION会话,
/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);
    }
}
搜索如下代码(68行):

if( strlen($svar)>0 && preg_match('#^(cfg_|GLOBALS|_GET|_POST|_COOKIE)#',$svar) )

替换 68 行代码,替换代码如下:
if( strlen($svar)>0 && preg_match('#^(cfg_|GLOBALS|_GET|_POST|_COOKIE|_SESSION)#',$svar) )


8,dedecms cookies泄漏导致SQL漏洞


dedecms的文章发表表单中泄漏了用于防御CSRF的核心cookie,同时在其他核心支付系统也使用了同样的cookie进行验证,
黑客可利用泄漏的cookie通过后台验证,进行后台注入。

/member/inc/inc_archives_functions.php文件,搜索(大概在239行的样子)


      echo "<input type=\"hidden\" name=\"dede_fieldshash\" value=\"".md5($dede_addonfields.$cfg_cookie_encode)."\" />";

      修改为

      echo "<input type=\"hidden\" name=\"dede_fieldshash\" value=\"". md5($dede_addonfields . 'anythingelse' .$cfg_cookie_encode) ."\" />";

/member/article_add.php

搜索代码:

if (empty($dede_fieldshash) || $dede_fieldshash != md5($dede_addonfields.$cfg_cookie_encode))

修改代码为:

if (empty($dede_fieldshash) || ( $dede_fieldshash != md5($dede_addonfields . $cfg_cookie_encode) && $dede_fieldshash != md5($dede_addonfields . 'anythingelse' . $cfg_cookie_encode)) )



9,dedecms后台文件任意上传漏洞

dedecms早期版本后台存在大量的富文本编辑器,该控件提供了一些文件上传接口,同时dedecms对上传文件的后缀类型未进行严格的限制,这导致了黑客可以上传WEBSHELL,获取网站后台权限。
/dede/media_add.php
搜索$fullfilename = $cfg_basedir.$filename;(大概在69行左右)
 
替换成
       
if (preg_match('#\.(php|pl|cgi|asp|aspx|jsp|php5|php4|php3|shtm|shtml)[^a-zA-Z0-9]+$#i', trim($filename))) {
    ShowMsg("你指定的文件名被系统禁止!",'java script:;');
    exit();
}
$fullfilename = $cfg_basedir.$filename;



标签:dedecms,漏洞,注入,dede漏洞