很多将织梦dedecms安装在阿里云的ecs的站长每次都会看到阿里云盾就会通知有一个上传漏洞,引起的文件是/include/uploadsafe.inc.php文件,
原因是dedecms原生提供一个”本地变量注册”的模拟实现,原则上允许黑客覆盖任意变量,就会导致被攻击,下面告诉大家解决的办法:
我们找到并打开/include/uploadsafe.inc.php文件,在里面找到如下代码:
1 |
if (empty(${$_key. '_size' })) |
3 |
${$_key. '_size' } = @filesize($$_key); |
|
在其下面添加如下代码:
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 ){ |
6 |
if (!is_array($image_dd)) { |
7 |
exit ( 'Upload filetype not allow !' ); |
|