DeDeCMS 漏洞修改彙總

1、標題: dedecms模版SQL注入漏洞
披露時間: 1970-01-01 08:00:00
簡介:
dedecms的/member/soft_add.php中,對輸入模板參數$servermsg1未進行嚴格過濾,導致攻擊者可構造模版閉合標籤,實現模版注入進行GETSHELL。
解決方案:

方案一:使用雲盾自研補丁進行一鍵修復;方案二:更新該軟件到官方最新版本或尋求該軟件提供商的幫助。【注意:該補丁爲雲盾自研代碼修復方案,雲盾會根據您當前代碼是否符合雲盾自研的修復模式進行檢測,如果您自行採取了底層/框架統一修復、或者使用了其他的修復方案,可能會導致您雖然已經修復了該漏洞,雲盾依然報告存在漏洞,遇到該情況可選擇忽略該漏洞提示】修改的

方法:

解決辦法:打開根目錄下/member/soft_add.php(在154行),

$urls .= "{dede:link islocal='1' text='{$servermsg1}'} $softurl1 {/dede:link}\r\n";

替換爲:

if (preg_match("#}(.*?){/dede:link}{dede:#sim", $servermsg1) != 1) {   $urls .= "{dede:link islocal='1' text='{$servermsg1}'} $softurl1 {/dede:link}\r\n";}

2、標題: dedecms支付模塊注入漏洞   

簡介:
DEDECMS支付插件存在SQL注入漏洞,此漏洞存在於/include/payment/alipay.php文件中,對輸入參數$_GET['out_trade_no']未進行嚴格過濾。

文件在include/payment/下面include/payment/alipay.php,搜索(大概在137行的樣子)

      $order_sn = trim($_GET['out_trade_no']);
      修改爲

      $order_sn = trim(addslashes($_GET['out_trade_no']));

3、標題: dedecms後臺文件任意上傳漏洞
披露時間: 1970-01-01 08:00:00
簡介:
dedecms早期版本後臺存在大量的富文本編輯器,該控件提供了一些文件上傳接口,同時dedecms對上傳文件的後綴類型未進行嚴格的限制,這導致了黑客可以上傳WEBSHELL,獲取網站後臺權限。


修復方法:
打開/dede/media_add.php(dede是你的後臺文件夾,請自行修改)
搜索(大概在69行左右):
$fullfilename = $cfg_basedir.$filename; 
在上面增加一句:
/***********修改文件開始*************/
            if (preg_match('#.(php|pl|cgi|asp|aspx|jsp|php5|php4|php3|shtm|shtml)[^a-zA-Z0-9]+$#i', trim($filename))) { 
                ShowMsg("你指定的文件名被系統禁止!",'javascript:;'); exit(); }
                 $fullfilename = $cfg_basedir.$filename;

            /***********修改文件結束*************/

4、標題: dedecms cookies泄漏導致SQL漏洞
披露時間: 1970-01-01 08:00:00
簡介:
dedecms的文章發表表單中泄漏了用於防禦CSRF的核心cookie,同時在其他核心支付系統也使用了同樣的cookie進行驗證,黑客可利用泄漏的cookie通過後臺驗證,進行後臺注入。


搜索代碼:if (empty($dede_fieldshash) || $dede_fieldshash != md5($dede_addonfields.$cfg_cookie_encode))    (大概在83行)

修改爲:

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

5、標題: dedecms cookies泄漏導致SQL漏洞
披露時間: 1970-01-01 08:00:00
簡介:
dedecms的文章發表表單中泄漏了用於防禦CSRF的核心cookie,同時在其他核心支付系統也使用了同樣的cookie進行驗證,黑客可利用泄漏的cookie通過後臺驗證,進行後臺注入。


解決方法:

打開\member\inc\inc_archives_functions.php文件,找到239行,將

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

替換爲:

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

修改文件前請做好文件備份。將新的inc_archives_functions.php文件上傳替換阿里雲服務器上即可解決此問題。

6、

漏洞名稱:dedecms 上傳漏洞

漏洞文件:include/uploadsafe.inc.php

漏洞描述:dedecms過濾邏輯不嚴導致上傳漏洞。

解決方法:

1、打開include/uploadsafe.inc.php文件,找到第8行或者搜索

1$cfg_not_allowall = "php|pl|cgi|asp|aspx|jsp|php3|shtm|shtml";

替換爲:

1$cfg_not_allowall = "php|pl|cgi|asp|aspx|jsp|php3|shtm|shtml|htm|html";

2、找到第52行或者搜索

1$image_dd = @getimagesize($$_key);

在其下面添加:

1if($image_dd == false){ continue; }

修改文件前請做好文件備份,將新的uploadsafe.inc.php文件上傳替換阿里雲服務器上即可解決此問題

6)

簡介:
dedecms的/dedecms/member/album_add.php文件中,對輸入參數mtypesid未進行int整型轉義,導致SQL注入的發生。

修復方法:
打開dedecms/member/album_add.php文件,查找以下代碼(大約220行左右)

$description = HtmlReplace($description, -1);//2011.06.30 增加html過濾 (by:織夢的魚)

將上面的代碼替換爲:

$description = HtmlReplace($description, -1);//2011.06.30 增加html過濾 (by:織夢的魚)
$mtypesid = intval($mtypesid);
7、漏洞名稱:dedecms SESSION變量覆蓋導致SQL注入

漏洞描述:dedecms的/plus/advancedsearch.php中,直接從SESSION[SESSION[sqlhash]獲取值作爲$query帶入SQL查詢,這個漏洞的利用前提是session.auto_start = 1即開始了自動SESSION會話,雲盾團隊在dedemcs的變量註冊入口進行了通用統一防禦,禁止SESSION變量的傳入

dedecms SESSION變量覆蓋導致SQL注入common.inc.php的解決方法

1、搜索如下代碼(68行):

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

2、替換 68 行代碼,替換代碼如下:

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

修改前請備份好文件,將新的/include/common.inc.php 文件上傳替換阿里雲服務器上的即可解決此問題。

8、

簡介:
dedecms會員中心注入漏洞。
解決方案:

方案一:使用雲盾自研補丁進行一鍵修復;方案二:更新該軟件到官方最新版本或尋求該軟件提供商的幫助

【注意:該補丁爲雲盾自研代碼修復方案,雲盾會根據您當前代碼是否符合雲盾自研的修復模式進行檢測,如果您自行採取了底層/框架統一修復、或者使用了其他的修復方案,可能會導致您雖然已經修復了該漏洞,雲盾依然報告存在漏洞,遇到該情況可選擇忽略該漏洞提示】

修復方法:

member/mtypes.php

在$name = HtmlReplace($name);下面添加

/* 對$id進行規範化處理 */        $id = intval($id);      /* */

9,/plus/guestbook/edit.inc.php  dedecms注入漏洞,其實就是留言版注入漏洞
沒有對$msg過濾,導致可以任意注入,找到
$msg = HtmlReplace($msg, -1);  
    $dsql->ExecuteNoneQuery("UPDATE `#@__guestbook` SET `msg`='$msg', `posttime`='".time()."' WHERE id='$id' ");  
    ShowMsg("成功更改或回覆一條留言!", $GUEST_BOOK_POS);  
    exit();  
修復:
$msg = addslashes(HtmlReplace($msg, -1));  
    $dsql->ExecuteNoneQuery("UPDATE `#@__guestbook` SET `msg`='$msg', `posttime`='".time()."' WHERE id='$id' ");  
    ShowMsg("成功更改或回覆一條留言!", $GUEST_BOOK_POS);  
    exit();  
加入: addslashes進行過濾

10.

 /member/pm.php文件,搜索(大概在65行左右)

$row = $dsql->GetOne("SELECT * FROM `dede_member_pms` WHERE id='$id' AND (fromid='{$cfg_ml->M_ID}' OR toid='{$cfg_ml->M_ID}')");

修改爲

$id = intval($id); //將$id 轉換爲int類型

$row = $dsql->GetOne("SELECT * FROM `dede_member_pms` WHERE id='$id' AND (fromid='{$cfg_ml->M_ID}' OR toid='{$cfg_ml->M_ID}')");







發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章