阿里云服務器是企業(yè)或個人使用得比較多的WEB服務器,由于價格問題,也曾經(jīng)考慮過用其他平臺的服務器,但確實管理起來比較麻煩,有些地區(qū)覆蓋不到,造成訪問速度受影響,而且漏洞問題也無法被檢測出來。如果你用的是最新版2018年1月的DedeCMS,漏洞還是存在的,下面總結的幾個漏洞修補方法。
1、dedecms過濾邏輯不嚴導致上傳漏洞
打開include/uploadsafe.inc.php文件,找到
$cfg_not_allowall = "php|pl|cgi|asp|aspx|jsp|php3|shtm|shtml";
替換為
$cfg_not_allowall = "php|pl|cgi|asp|aspx|jsp|php3|shtm|shtml|htm|html";
找到
$image_dd = @getimagesize($$_key);
替換為
$image_dd = @getimagesize($$_key); if($image_dd == false){ continue; }
2、dedecms變量覆蓋漏洞導致任意文件上傳
打開文件/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("你指定的文件名被系統(tǒng)禁止!",'javascript:;'); exit(); } $fullfilename = $cfg_basedir.$activepath.'/'.$filename;
3、dedecms早期版本后臺存在大量的富文本編輯器,該控件提供了一些文件上傳接口,同時dedecms對上傳文件的后綴類型未進行嚴格的限制,這導致了黑客可以上傳WEBSHELL,獲取網(wǎng)站后臺權限
打開文件/dede/media_add.php或者/你的后臺名字/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("你指定的文件名被系統(tǒng)禁止!",'javascript:;'); exit(); } $fullfilename = $cfg_basedir.$filename;