一打開阿裡雲背景,發現了12個加急處理的漏洞,還沒來得及了解阿裡雲的漏洞檢測原理,直接開始着手修複漏洞
searching on baidu... ... : )
1.dedecms支付子產品注入漏洞
描述:
DEDECMS支付插件存在SQL注入漏洞,此漏洞存在于/include/payment/alipay.php檔案中,對輸入參數$_GET['out_trade_no']未進行嚴格過濾。
解決:找到 /include/payment/alipay.php 修改
$order_sn = trim($_GET['out_trade_no']);
修改為
$order_sn = trim(addslashes($_GET['out_trade_no']));
----------------------------------------------------
2.dedecms SESSION變量覆寫導緻sql注入
描述:
dedecms的/plus/advancedsearch.php中,直接從$_SESSION[$sqlhash]擷取值作為$query帶入SQL查詢,這個漏洞的利用前提是session.auto_start = 1即開始了自動SESSION會話,雲盾團隊在dedemcs的變量注冊入口進行了通用統一防禦,禁止SESSION變量的傳入。
解決:找到 /include/common.inc.php 修改
if( strlen($svar)>0 && preg_match('#^(cfg_|GLOBALS|_GET|_POST|_COOKIE)#',$svar) )
改為
if( strlen($svar)>0 && preg_match('#^(cfg_|GLOBALS|_GET|_POST|_COOKIE|_SESSION)#',$svar) )
----------------------------------------------------------
3.dedecms 上傳漏洞
描述:
dedecms過濾邏輯不嚴導緻上傳漏洞。
解決:找到 /include/uploadsafe.inc.php 修改
第一處:
${$_key.'_size'} = @filesize($$_key);
改為
${$_key.’_size’} = @filesize($$_key);
$imtypes = array("image/pjpeg", "image/jpeg", "image/gif", "image/png", "image/xpng", "image/wbmp", "image/bmp");
if(in_array(strtolower(trim(${$_key.’_type’})), $imtypes)) {
$image_dd = @getimagesize($$_key);
if($image_dd == false){
continue;
}
if (!is_array($image_dd)){
exit('Upload filetype not allow !');
}
}
第二處:在上面修改的後面還有一個$image_dd沒有判斷
$image_dd = @getimagesize($$_key);
後面添加
if($image_dd == false){
continue;
}
解決:找到/include/dialog/select_soft_post.php 修改
在 fullfilename = $cfg_basedir.$activepath.'/'.$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();
}
-----------------------------------------------------------
4. dedecms cookies 洩漏導緻SQL漏洞
描述:
dedecms的文章發表表單中洩漏了用于防禦CSRF的核心cookie,同時在其他核心支付系統也使用了同樣的cookie進行驗證,黑客可利用洩漏的cookie通過背景驗證,進行背景注入。
解決:
第一處:打開 \member\inc\inc_archives_functions.php 找到
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)))
--------------------------------------------------
5.留言闆注入漏洞
描述:
dedecms留言闆注入漏洞。
解決:
找到 /plus/guestbook/edit.inc.php
$msg = HtmlReplace($msg, -1);
$dsql->ExecuteNoneQuery("UPDATE `#@__guestbook` SET `msg`='$msg', `posttime`='".time()."' WHERE id='$id' ");
ShowMsg("成功更改或回複一條留言!", $GUEST_BOOK_POS);
exit();
改為
$msg = addcslashes(HtmlReplace($msg, -1));
$dsql->ExecuteNoneQuery("UPDATE `#@__guestbook` SET `msg`='$msg', `posttime`='".time()."' WHERE id='$id' ");
ShowMsg("成功更改或回複一條留言!", $GUEST_BOOK_POS);
exit();
-----------------------------------------------------
6.dedecms背景檔案任意上傳漏洞
描述:
dedecms早期版本背景存在大量的富文本編輯器,該控件提供了一些檔案上傳接口,同時dedecms對上傳檔案的字尾類型未進行嚴格的限制,這導緻了黑客可以上傳WEBSHELL,擷取網站背景權限。
解決:
找到 /dede/media_add.php
$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;
----------------------------------------------------------------------
7. dedecms 模版SQL注入漏洞
描述:
dedecms的/member/soft_add.php中,對輸入模闆參數$servermsg1未進行嚴格過濾,導緻攻擊者可構造模版閉合标簽,實作模版注入進行GETSHELL。
解決:
找到 /member/soft_add.php
$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";
}
------------------------------------------------------------------------
8.dedecms v5.7注冊使用者任意檔案删除漏洞
描述:
dedecms前台任意檔案删除(需要會員中心),發表文章處,對于編輯文章的時候圖檔參數處理不當,導緻了任意檔案删除
解決:
找到 /member/inc/archives_check_edit.php
$litpic =$oldlitpic;
修改為:
$litpic =$oldlitpic;
if (strpos( $litpic, '..') !== false || strpos( $litpic, $cfg_user_dir."/{$userid}/" ) === false) exit('not allowed path!');
-----------------------------------------------------------
9.dedecms 會員中心注入漏洞
描述:
dedecms會員中心注入漏洞。
解決:
找到 /member/pm.php
$row = $dsql->GetOne("SELECT * FROM `#@__member_pms` WHERE id='$id' AND (fromid='{$cfg_ml->M_ID}' OR toid='{$cfg_ml->M_ID}')");
改為
$id = intval($id);
$row = $dsql->GetOne("SELECT * FROM `#@__member_pms` WHERE id='$id' AND (fromid='{$cfg_ml->M_ID}' OR toid='{$cfg_ml->M_ID}')");
----------------------------------------------------------
10. Sql注入
描述:
dedecms的/dedecms/member/album_add.php檔案中,對輸入參數mtypesid未進行int整型轉義,導緻SQL注入的發生。
解決:
找到 /member/album_add.php
$description = HtmlReplace($description, -1);
//儲存到主表
$inQuery = "INSERT INTO `#@__archives`(id,typeid,sortrank,flag,ismake,channel,arcrank,click,money,title,shorttitle,
color,writer,source,litpic,pubdate,senddate,mid,description,keywords,mtype)
VALUES ('$arcID','$typeid','$sortrank','$flag','$ismake','$channelid','$arcrank','0','$money','$title','$shorttitle',
'$color','$writer','$source','$litpic','$pubdate','$senddate','$mid','$description','$keywords','$mtypesid'); ";
改為:
$description = addcslashes(HtmlReplace($description, -1));
$mtypesid = intval($mtypesid);
//儲存到主表
$inQuery = "INSERT INTO `#@__archives`(id,typeid,sortrank,flag,ismake,channel,arcrank,click,money,title,shorttitle,
color,writer,source,litpic,pubdate,senddate,mid,description,keywords,mtype)
VALUES ('$arcID','$typeid','$sortrank','$flag','$ismake','$channelid','$arcrank','0','$money','$title','$shorttitle',
'$color','$writer','$source','$litpic','$pubdate','$senddate','$mid','$description','$keywords','$mtypesid'); ";
----------------------------------------------------------
11. Sql注入
位置:/member/mtypes.php
$query = "UPDATE `#@__mtypes` SET mtypename='$name' WHERE mtypeid='$id' AND mid='$cfg_ml->M_ID'";
改為:
$id = intval($id);
$query = "UPDATE `#@__mtypes` SET mtypename='$name' WHERE mtypeid='$id' AND mid='$cfg_ml->M_ID'";
---------------------------------------------------
searching end
以上内容均來自網絡,如有侵權請聯系我