織夢CMS在安裝完成后,新人往往會直接開始開發(fā)使用,忽視了一些安全優(yōu)化的操作,這樣會導(dǎo)致后期整個系統(tǒng)安全系數(shù)降低,被黑或者被注入的概率極高,畢竟這世界百分百存在著極多的無聊hacker對全網(wǎng)的網(wǎng)站進(jìn)行掃描,掃到你這個菜站,尤其是使用率極高的DEDECMS,對你的站點下手的欲望更高,所以在開發(fā)前做好安全防范還是很有必要的!
系統(tǒng)安全優(yōu)化設(shè)置之前,做好備份工作。網(wǎng)站備份是網(wǎng)站維護(hù)必須必學(xué)基礎(chǔ)。
安裝完成后會有一些文件,可以說是冗余文件,完全沒有作用,反而帶來被黑的危險,刪除即可,以下目錄文件均可刪除:
目錄 | 刪除原因 |
---|---|
/install | 安裝后的余留文件,沒用,整個文件夾刪除 |
/member | 會員功能文件,大數(shù)企業(yè)站沒用,文件夾刪除,若需要會員功能的就不能刪 |
/special | 專題功能,如果你不需要這個功能,文件夾刪除,需要就別刪,大部分是不需要的 |
/tags.php | TAG標(biāo)簽,沒有此功能可刪除 |
網(wǎng)站后臺目錄dede要刪除的文件 | 刪除原因 |
---|---|
/dede/tpl.php | 文件上傳管理系統(tǒng)文件,易被掛馬,強烈建議刪除或者不用時請改名(tpl備用.php) |
/dede/templets_*.php | 模板管理功能,老手建議刪除,使用FTP管理 |
/dede/media_*.php | 附件數(shù)據(jù)管理功能文件,易被掛馬,刪除(用你的FTP管理文件就可以了,別用這個) |
/dede/file_*.php | 文件式管理器功能控制器文件,易被掛馬,刪除(用你的FTP管理文件就可以了,別用這個) |
/dede/mytag_*.php、mytag_tag_*.php | 自定義標(biāo)記管理,易被上傳一句話木馬 |
/dede/story_*.php | 小說功能,可刪除 |
/dede/erraddsave.php | 糾錯功能,可刪除 |
/dede/feedback_*.php | 評論管理,可刪除 |
/dede/group_*.php | 圈子功能,很少用到,可刪除 |
/dede/co_*.php | 采集控制文件,可刪除 |
/dede/cards_*.php | 點卡功能功能,可刪除 |
/dede/ad_*.php | 廣告管理添加/刪除文件,企業(yè)站一般不用可刪除 |
/dede/spec_*.php | 專題管理,沒有專題頁面,可刪除 |
/dede/vote_*.php | 投票功能,可刪除 |
/dede/sys_sql_query.php | SQL命令運行器,不需要的話可以改名為(sys_sql_query安全禁用.php)也可以刪除 |
目錄/plus要刪除的文件 | 刪除原因(正常的企業(yè)站可以只保留list.php、view.php、count.php、search.php、diy.php(企業(yè)站經(jīng)常用到的表單)五個文件以及img文件夾,其他全部刪除) |
---|---|
/plus/guestbook | 留言簿模塊,整體刪除,容易SQL注入及垃圾留言, |
/plus/task和task.php | 計劃任務(wù)控制文件,文件夾和文件都刪除 |
/plus/bookfeedback.php、bookfeedback_js.php | 圖書評論和評論調(diào)用文件,存在注入漏洞,不安全 |
/plus/bshare.php | 分享插件 |
/plus/ad_js.php | 廣告插件,新聞資訊站用到的,請勿刪除 |
/plus/car.php、posttocar.php、carbuyaction.php | 購物車 |
/plus/comments_frame.php | 調(diào)用評論,存在安全漏洞 |
/plus/digg_ajax.php、digg_frame.php | 頂踩 |
/plus/download.php、disdls.php | 下載和次數(shù)統(tǒng)計 |
/plus/erraddsave.php | 糾錯 |
/plus/feedback.php、feedback_ajax.php、feedback_js.php | 評論 |
/plus/stow.php | 內(nèi)容收藏 |
/plus/vote.php | 投票 |
①網(wǎng)站后臺文件改名:默認(rèn)后臺目錄是/dede,需要將這個文件夾的名稱修改,比如改為WangZhan123@+,那么后臺登陸地址就由www.xxx.com/dede變?yōu)閣ww.xxx.com/WangZhan123@+,(不定期更改一下)
②后臺登錄密碼請勿使用admin。
①有條件的用戶把中 data、templets、uploads、a(可刪)、special(可刪)、images、install(裝后刪)目錄設(shè)置為不允許執(zhí)行腳本,include、plus、dede目錄禁止寫入,系統(tǒng)將更安全;
②權(quán)限設(shè)置一般通過主機控制面板,比如阿里云的文件和目錄權(quán)限設(shè)置、西部數(shù)碼的文件保護(hù)等等。
③老版本若登錄后臺提示驗證碼錯誤,選中/data目錄,將權(quán)限設(shè)置為完全控制(可讀可寫)權(quán)限
主機安全防護(hù)只針對獨立服務(wù)器或者VPS。
WIN服務(wù)器:可以安裝安全狗、『D盾_防火墻』
LINUX服務(wù)器:網(wǎng)站防竄改程序、寶塔系統(tǒng)加固;
$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; |
這是后臺文件任意上傳漏洞(上面有說刪除此文件,如果不刪除,需要使用這個功能,那么修改以下代碼補掉漏洞)
$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.$filename; |
$image_dd = @getimagesize($$_key); 修改為 $image_dd = @getimagesize($$_key); if($image_dd == false){ continue; } |
${$_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 !');} } |
return $svar; 修改為 return addslashes($svar); |
$keyword = addslashes(cn_substr($keyword,30)); 修改為 $typeid = intval($typeid); $keyword = addslashes(cn_substr($keyword,30)); |
$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'"; |
$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}')"); |
$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' ");; |
$urls .= "{dede:link islocal='1' text='{$servermsg1}'} $softurl1 {/dede:link} "; 修改為 if (preg_match("#}(.*?){/dede:link}{dede:#sim", $servermsg1) != 1) { $urls .= "{dede:link islocal='1' text='{$servermsg1}'} $softurl1 {/dede:link} "; } |
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))) |
$description = HtmlReplace($description, -1);//2011.06.30 增加html過濾 (by:織夢的魚) 修改為 $description = HtmlReplace($description, -1);//2011.06.30 增加html過濾 (by:織夢的魚) $mtypesid = intval($mtypesid); |
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) ."" />"; |
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) ) |
$order_sn = trim($_GET['out_trade_no']); 修改為 $order_sn = trim(addslashes($_GET['out_trade_no'])); |
if(isset($GLOBALS['arrs1'])) 修改為 $arrs1 = array(); $arrs2 = array(); if(isset($GLOBALS['arrs1'])) |
$litpic =$oldlitpic; 修改為 $litpic =$oldlitpic; if (strpos( $litpic, '..') !== false || strpos( $litpic, $cfg_user_dir."/{$userid}/" ) === false) exit('not allowed path!'); |
<!--<script type="text/javascript" src="<?php echo UPDATEHOST;?>/dedecms/loginad.<?php echo $cfg_soft_lang; ?>.js"></script>--> <div class="dede-ad"> <ul> <script type="text/javascript"src="http://ad.dedecms.com/adsview/?action=single&key=admcploginad&charset=gbk"></script> </ul> </div> |
<iframe name="showad" src="index_body.php?dopost=showad" frameborder="0" width="100%" id="showad" frameborder="0" scrolling="no" marginheight="5"></iframe> |
SendData($hash);//321行 SendData($hash,2);//527行 |
else if($typeid == 999) { } //將{}里的以及上面的else全部刪除 |
if(file_exists($cachefile) && (filemtime($cachefile) + 60 * 30) > time()) 修改為 if(file_exists($cachefile) && filesize($cachefile) > 10) |
$arrs1 = array(0x63,0x66,0x67,0x5f,0x70,0x6f,0x77,0x65,0x72,0x62,0x79); $arrs2 = array(0x20,0x3c,0x61,0x20,0x68,0x72,0x65,0x66,0x3d,0x68,0x74,0x74,0x70,0x3a,0x2f,0x2f,0x77,0x77,0x77,0x2e,0x64,0x65,0x64,0x65,0x63,0x6d,0x73,0x2e,0x63,0x6f,0x6d,0x20,0x74,0x61,0x72,0x67,0x65,0x74,0x3d,0x27,0x5f,0x62,0x6c,0x61,0x6e,0x6b,0x27,0x3e,0x50,0x6f,0x77,0x65,0x72,0x20,0x62,0x79,0x20,0x44,0x65,0x64,0x65,0x43,0x6d,0x73,0x3c,0x2f,0x61,0x3e); //特殊操作 $arrs1 = array(); $arrs2 = array(); if(isset($GLOBALS['arrs1'])) { $v1 = $v2 = ''; for($i=0;isset($arrs1[$i]);$i++) { $v1 .= chr($arrs1[$i]); } for($i=0;isset($arrs2[$i]);$i++) { $v2 .= chr($arrs2[$i]); } $GLOBALS[$v1] .= $v2; } |
$arrs1 = array(0x63,0x66,0x67,0x5f,0x70,0x6f,0x77,0x65,0x72,0x62,0x79); $arrs2 = array(0x20,0x3c,0x61,0x20,0x68,0x72,0x65,0x66,0x3d,0x68,0x74,0x74,0x70,0x3a,0x2f,0x2f, 0x77,0x77,0x77,0x2e,0x64,0x65,0x64,0x65,0x63,0x6d,0x73,0x2e,0x63,0x6f,0x6d,0x20,0x74,0x61,0x72, 0x67,0x65,0x74,0x3d,0x27,0x5f,0x62,0x6c,0x61,0x6e,0x6b,0x27,0x3e,0x50,0x6f,0x77,0x65,0x72,0x20, 0x62,0x79,0x20,0x44,0x65,0x64,0x65,0x43,0x6d,0x73,0x3c,0x2f,0x61,0x3e); |
① linux主機的用戶一般都是apache環(huán)境,使用 .htaccess 文件來設(shè)置,如果你網(wǎng)站根目錄已經(jīng)存在這個文件,那就復(fù)制一下代碼添加進(jìn)去。
RewriteEngine on #安全設(shè)置 禁止以下目錄運行指定php腳本 RewriteCond % !^$ RewriteRule a/(.*).(php)$ – [F] RewriteRule data/(.*).(php)$ – [F] RewriteRule templets/(.*).(php|htm)$ – [F] RewriteRule uploads/(.*).(php)$ – [F] |
②:windows主機的用戶一般都是iis7、iis8環(huán)境,使用 web.config 文件來設(shè)置,請確認(rèn)你的主機已經(jīng)開啟了偽靜態(tài)而且網(wǎng)站根目錄有 web.config 文件,有這個文件的可以復(fù)制以下代碼添加到對應(yīng)的rules內(nèi)。
<rule name="Block data" stopProcessing="true"> <match url="^data/(.*).php$" /> <conditions logicalGrouping="MatchAny"> <add input="{USER_AGENT}" pattern="data" /> <add input="{REMOTE_ADDR}" pattern="" /> </conditions> <action type="AbortRequest" /> </rule> <rule name="Block templets" stopProcessing="true"> <match url="^templets/(.*).php$" /> <conditions logicalGrouping="MatchAny"> <add input="{USER_AGENT}" pattern="templets" /> <add input="{REMOTE_ADDR}" pattern="" /> </conditions> <action type="AbortRequest" /> </rule> <rule name="Block SomeRobot" stopProcessing="true"> <match url="^uploads/(.*).php$" /> <conditions logicalGrouping="MatchAny"> <add input="{USER_AGENT}" pattern="SomeRobot" /> <add input="{REMOTE_ADDR}" pattern="" /> </conditions> <action type="AbortRequest" /> </rule> |
③:Nginx下禁止指定目錄運行PHP腳本
注意:這段配置文件一定要放在 location ~ .php(.*)$ 的前面才可以生效,配置完后記得重啟Nginx生效。
location ~* /(a|data|templets|uploads)/(.*).(php)$ { return 403; } |
測試有沒有生效,可以隨便創(chuàng)建一個PHP文件傳到uploads文件夾下,執(zhí)行:域名/uploads/測試文件.php 如果不能打開說明生效。
迄今為止,我們發(fā)現(xiàn)的惡意腳本文件有:
1:檢查有無/data/cache/t.php 、/data/cache/x.php和/plus/index.php 這些木馬文件,有的話則立即刪除
2:plus 目錄木馬
plus/90sec.php plus/ac.php plus/config_s.php plus/config_bak.php plus/diy.php (系統(tǒng)文件) plus/ii.php plus/lndex.php data/cache/t.php data/cache/x.php data/cache/mytag-*.htm data/config.php data/cache/config_user.php data/config_func.php include/taglib/shell.lib.php include/taglib/*.lib.php |
大多數(shù)被上傳的腳本集中在plus、data、data/cache、include這幾個目錄下,請仔細(xì)檢查這幾個目錄下最近是否有被上傳異常文件。
軟件使用自行研發(fā)不分?jǐn)U展名的代碼分析引擎,能分析更為隱藏的WebShell后門行為。
引擎特別針對,一句話后門,變量函數(shù)后門,${}執(zhí)行 ,`執(zhí)行,
preg_replace執(zhí)行,call_user_func,file_put_contents,fputs 等特殊函數(shù)
的參數(shù)進(jìn)行針對性的識別,能查殺更為隱藏的后門,
并把可疑的參數(shù)信息展現(xiàn)在你面前,讓你能更快速的了解后門的情況
新版特別針對 dedecms 的{dede:php}{/dede:php}代碼加入了識別!
軟件加入隔離功能,并且可以還原!
如有不能識別的webshell請使用上傳樣本功能上傳給我們,我們將后期加入識別!
下載:http://www.d99net.net/down/WebShellKill_V1.4.1.zip
更新于2020-01-01,后期有更新,將會持續(xù)更新本文
上一篇:
下一篇:沒有了
版權(quán)聲明: 本站資源均來自互聯(lián)網(wǎng)或會員發(fā)布,如果侵犯了您的權(quán)益請與我們聯(lián)系,我們將在24小時內(nèi)刪除!謝謝!
轉(zhuǎn)載請注明: 最新織夢cms漏洞之安全設(shè)置,有效防護(hù)木馬(更新至20190920)