很多人說dedecms不好,因為用的人多了,找漏洞的人也多了,那麼如果我們能修復的話,這些都不是問題.
任意檔案上傳漏洞修復
一、/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))) $fullfilename = $cfg_basedir.$activepath.'/'.$filename;;
二、後台檔案任意上傳漏洞
/dede/media_add.php或者/你的後台名字/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))) $fullfilename = $cfg_basedir.$filename;
三、 /include/uploadsafe.inc.php (有2個地方:)
1、搜尋 $ = @filesize($$_key);
}(大概在42,43行左右)
替換成
$ = @filesize($$_key);
} $imtypes = array("image/pjpeg", "image/jpeg", "image/gif", "image/png", "image/xpng", "image/wbmp", "image/bmp"); if(in_array(strtolower(trim($)), $imtypes)) if (!is_array($image_dd)) }
如果修改後出現文章頁面空白頁,請仔細檢視**是否多了或者少了大括號},本檔案44行是空的,沒有**,請注意。
2、搜尋 $image_dd = @getimagesize($$_key);(大概在53行左右)
替換成
$image_dd = @getimagesize($$_key); if($image_dd == false)
老規矩大紅色地方標記了修改的地方,然後儲存,接著備份原檔案,比如檔名變為uploadsafe.inc.php.16.08.09.bak。然後上傳修改好的檔案即可。
(sql)注入漏洞修復
一、 /include/filter.inc.php檔案,搜尋(大概在46行的樣子)
return $svar;
修改為return addslashes($svar);
二、/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'";
三、 /member/pm.php檔案,搜尋(大概在65行的樣子)
$row = $dsql->getone("select * from `dede_member_pms` where id='$id' and (fromid='' or toid='')");
修改為$id = intval($id); $row = $dsql->getone("select * from `dede_member_pms` where id='$id' and (fromid='' or toid='')");
四、 /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' ");;
五、 /plus/search.php檔案,搜尋(大概在109行的樣子)
$keyword = addslashes(cn_substr($keyword,30));
修改為$typeid = intval($typeid); $keyword = addslashes(cn_substr($keyword,30));
六、/member/soft_add.php 搜尋(大概在154行左右)
搜尋$urls .= "'} $softurl1 \r\n";
替換成
if (preg_match("#}(.*?)'} $softurl1 \r\n"; }
七、cookies洩漏導致sql漏洞修復
1、/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)))
2、/member/inc/inc_archives_functions.php檔案,搜尋(大概在239行的樣子)
echo "";
修改為echo "";
session變數覆蓋導致sql注入漏洞
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) )
支付模組注入漏洞
include/payment/alipay.php檔案,搜尋(大概在137行的樣子)
$order_sn = trim($_get['out_trade_no']);
修改為$order_sn = trim(addslashes($_get['out_trade_no']));;
變數為初始化導致本地變數注入
/include/dedesql.class.php檔案,搜尋(大概在590行的樣子)
if(isset($globals['arrs1']))
修改為$arrs1 = array(); $arrs2 = array(); if(isset($globals['arrs1']))
如果之前定義過$arrs1或$arrs2的,請調整比對**。
至此,dedecms漏洞修復大全含任意檔案上傳漏洞與注入漏洞(5.7起)就修改完畢了。
織夢dedecms漏洞修復大全 5 7起
很多人說dedecms不好,因為用的人多了,找漏洞的人也多了,那麼如果我們能修復的話,這些都不是問題.一 include dialog select soft post.php檔案,搜尋 大概在72行的樣子 fullfilename cfg basedir.activepath.filename 修...
修改織夢DedeCMS投票漏洞
織夢 dedecms系統我們都知道是有很多漏洞的,我在除錯投票功能的時候正好要用到投票功能,這不就出現了漏洞,下面我就給大家展示如何修復這個織夢投票漏洞 首先我們開啟檔案,查 找 如下 this dsql executenonequery update dede vote set totalcoun...
織夢DEDECMS安全防護設定及漏洞修復
member 會員資料夾整個刪除 special 專題資料夾整個刪除 install 安裝資料夾整個刪除 robots.txt 檔案刪除 刪除 templets default 官方預設模板這個資料夾 在你自己有模板的情況下,如果沒有,請勿刪除 刪除plus資料夾除下列檔案外的所有檔案,保留下面幾個...