很多将dedecmsCMSdedecms安装在阿里云的ecs的站长每次都会看到阿里云盾就会通知有一个上传漏洞,引起的文件是/include/uploadsafe.inc.php文件,
原因是dedecms原生提供一个"本地变量注册"的模拟实现,原则上允许黑客覆盖任意变量,就会导致被攻击,下面告诉大家解决的办法:
我们找到并打开/include/uploadsafe.inc.php文件,在里面找到如下代码:
1
if
(empty(${$_key.
'_size'
}))
2
{
3
${$_key.
'_size'
} = @filesize($$_key);
4
}
在其下面添加如下代码:
1
$imtypes = array(
"image/pjpeg"
,
"image/jpeg"
,
"image/gif"
,
"image/png"
,
"image/xpng"
,
"image/wbmp"
,
"image/bmp"
);
2
if
(in_array(strtolower(trim(${$_key.
'_type'
})), $imtypes)){
3
$image_dd = @getimagesize($$_key);
if
($image_dd ==
false
){
4
continue
;
5
}
6
if
(!is_array($image_dd)) {
7
exit
(
'Upload filetype not allow !'
);
8
}
9
}
THE END