今天一個(gè)客戶碰到織夢(mèng)DeDeCMS漏洞攻擊,出現(xiàn)很多掛馬信息,比如plus/list.php/?scate-6351100.csv、plus/view.php/?/seo/blSpI2=ohvutj.xls、tags.php/?kaof8mx.csv這樣的網(wǎng)址,大面積百度快照受影響,受此影響,小編在此與大家分享織夢(mèng)漏洞修復(fù)方法大全。 Dede漏洞1:任意文件上傳漏洞修復(fù)修復(fù)方法 /include/dialog/select_soft_post.php文件72行,搜索: $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("你指定的文件名被系統(tǒng)禁止!",'javascript:;'); exit(); } $fullfilename =$cfg_basedir.$activepath.'/'.$filename; Dede漏洞2:管理后臺(tái)文件任意上傳getshell漏洞修復(fù)方法 /dede/media_add.php,或/你的后臺(tái)名字/media_add.php 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("你指定的文件名被系統(tǒng)禁止!",'javascript:;'); exit(); } $fullfilename =$cfg_basedir.$activepath.'/'.$filename; 修復(fù)方法跟第一點(diǎn)類似。 Dede漏洞3:附件上傳格式判斷漏洞修復(fù)方法 文件:/include/uploadsafe.inc.php大概在42、43行左右兩處: ${$_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 !'); } } 大概在53行左右,搜索: $image_dd = @getimagesize($$_key); 后面增加代碼: if($image_dd == false){ continue; } Dede漏洞4:SQL注入漏洞修復(fù)方法 文件/include/filter.inc.php,大概在46行,搜索: return $svar; 改為: return addslashes($svar); 文件/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); $row = $dsql->GetOne("SELECT * FROM `dede_member_pms` WHERE id='$id' AND (fromid='{$cfg_ml->M_ID}' OR toid='{$cfg_ml->M_ID}')"); 相當(dāng)于先對(duì)$id做整型過(guò)濾。 文件/member/mtypes.php,大概在71行,搜索: $query = "UPDATE `dede_mtypes` SET mtypename='$name' WHERE mtypeid='$id' AND mid='$cfg_ml->M_ID'"; 改為: $id = intval($id);$query = "UPDATE `dede_mtypes` SET mtypename='$name' WHERE mtypeid='$id' AND mid='$cfg_ml->M_ID'"; 同上,也是先對(duì)$id過(guò)濾。 文件/plus/guestbook/edit.inc.php,大概在55行,搜索: $dsql->ExecuteNoneQuery("UPDATE `dede_guestbook` SET `msg`='$msg', `posttime`='".time()."' WHERE id='$id' "); 改為: $msg = addslashes($msg); $dsql->ExecuteNoneQuery("UPDATE `dede_guestbook` SET `msg`='$msg', `posttime`='".time()."' WHERE id='$id' "); 先對(duì)$msg做過(guò)濾。 文件/plus/search.php,大概在109行,搜索: $keyword = addslashes(cn_substr($keyword,30)); 改為: $typeid = intval($typeid);$keyword = addslashes(cn_substr($keyword,30)); 先對(duì)$typeid做整型過(guò)濾。 文件/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"; } 增加一個(gè)判斷,避免模版SQL注入。 Dede漏洞5:Cookies泄漏導(dǎo)致SQL漏洞修復(fù)方法 文件/member/article_add.php,大概在83行,搜索: 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))) 文件/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) ."\" /》"; Dede漏洞6:SESSION變量覆蓋導(dǎo)致SQL注入漏洞修復(fù)方法 文件include/common.inc.php,大概在68行,搜索: 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) ) 增加Session過(guò)濾判斷。 Dede漏洞7:變量初始化導(dǎo)致本地注入修復(fù)方法 文件/include/dedesql.class.php,大概在590行,搜索: if(isset($GLOBALS['arrs1'])) 改為: $arrs1 = array();$arrs2 = array();if(isset($GLOBALS['arrs1'])) 也就是先定義好$arrs1、$arrs2,如果之前定義過(guò),這一條忽略。 Dede漏洞8:支付模塊注入漏洞修復(fù)方法 文件include/payment/alipay.php,大概在137行,搜索: $order_sn = trim($_GET['out_trade_no']); 改為: $order_sn = trim(addslashes($_GET['out_trade_no'])); 增加addslashes轉(zhuǎn)換過(guò)濾。 Dede漏洞9:注冊(cè)用戶任意文件刪除漏洞修復(fù)方法 文件/member/inc/archives_check_edit.php,大概在92行,搜索: $litpic =$oldlitpic; 改為: $litpic =$oldlitpic;if (strpos( $litpic, '..') !== false || strpos( $litpic, $cfg_user_dir."/{$userid}/" ) === false) exit('你沒(méi)有此文件的權(quán)限!'); 增加權(quán)限判斷。 Dede漏洞10:留言板注入漏洞修復(fù)方法 文件/plus/guestbook/edit.inc.php,大概在55行,搜索: $dsql->ExecuteNoneQuery("UPDATE `dede_guestbook` SET `msg`='$msg', `posttime`='".time()."' WHERE id='$id' "); 改為: $msg = addslashes($msg);$dsql->ExecuteNoneQuery("UPDATE `dede_guestbook` SET `msg`='$msg', `posttime`='".time()."' WHERE id='$id' "); 先對(duì)數(shù)據(jù)addslashes轉(zhuǎn)碼過(guò)濾。 |
免責(zé)聲明:本站部分文章和圖片均來(lái)自用戶投稿和網(wǎng)絡(luò)收集,旨在傳播知識(shí),文章和圖片版權(quán)歸原作者及原出處所有,僅供學(xué)習(xí)與參考,請(qǐng)勿用于商業(yè)用途,如果損害了您的權(quán)利,請(qǐng)聯(lián)系我們及時(shí)修正或刪除。謝謝!
始終以前瞻性的眼光聚焦站長(zhǎng)、創(chuàng)業(yè)、互聯(lián)網(wǎng)等領(lǐng)域,為您提供最新最全的互聯(lián)網(wǎng)資訊,幫助站長(zhǎng)轉(zhuǎn)型升級(jí),為互聯(lián)網(wǎng)創(chuàng)業(yè)者提供更加優(yōu)質(zhì)的創(chuàng)業(yè)信息和品牌營(yíng)銷服務(wù),與站長(zhǎng)一起進(jìn)步!讓互聯(lián)網(wǎng)創(chuàng)業(yè)者不再孤獨(dú)!
掃一掃,關(guān)注站長(zhǎng)網(wǎng)微信