当前位置:首页 > 行业动态 > 正文

织梦dedecms后台文件任意上传破绽修复方法

织梦dedecms后台文件任意上传破绽修复方法

破绽简介

织梦dedecms是一款开源的内容管理系统,广泛应用于企业网站、政府网站等各类网站,由于其代码存在安全破绽,攻击者可以利用这些破绽对网站进行攻击,如:获取网站敏感信息、改动网站内容等,后台文件任意上传破绽是织梦dedecms中较为常见的一种破绽。

破绽原理

后台文件任意上传破绽的原理是:攻击者通过构造反面请求,绕过织梦dedecms的验证机制,将反面文件上传到服务器上,当其他用户访问这个反面文件时,就会触发破绽,导致攻击者可以对网站进行进一步的攻击。

破绽修复方法

为了修复织梦dedecms后台文件任意上传破绽,我们需要从以下几个方面进行操作:

1、修改文件上传路径

2、限制文件类型

3、添加文件名验证规则

4、设置文件大小限制

5、删除无用的文件上传功能

下面详细介绍每个步骤的操作方法:

(1)修改文件上传路径

我们需要修改织梦dedecms的文件上传路径,将其设置为不可访问的目录,具体操作如下:

1、登录织梦dedecms后台,找到系统设置>系统基本参数>附件保存路径,将其修改为不可访问的目录,如:/data/files/。

2、修改include目录下的upload.class.php文件,找到以下代码:

$save_path = $cfg_basedir . $cfg_upload_dir;

将其修改为:

$save_path = $cfg_basedir . '/data/files/';

3、修改include目录下的file_manage.class.php文件,找到以下代码:

$save_path = $cfg_basedir . $cfg_upload_dir;

将其修改为:

$save_path = $cfg_basedir . '/data/files/';

(2)限制文件类型

为了防止攻击者上传反面文件,我们需要限制允许上传的文件类型,具体操作如下:

1、登录织梦dedecms后台,找到系统设置>系统基本参数>附件类型,将其设置为只允许上传图片类型,jpg,jpeg,png,gif,bmp。

2、修改include目录下的upload.class.php文件,找到以下代码:

$allowtype = array('image/pjpeg','image/jpeg','image/png','image/xpng','application/xshockwaveflash','application/msword','application/vnd.msexcel','application/vnd.mspowerpoint','text/plain','text/html','application/xzipcompressed','application/octetstream');

将其修改为:

$allowtype = array('image/pjpeg','image/jpeg','image/png','image/xpng');

(3)添加文件名验证规则

为了防止攻击者通过修改文件名来绕过安全检查,我们需要添加文件名验证规则,具体操作如下:

1、登录织梦dedecms后台,找到系统设置>系统基本参数>附件命名规则,将其设置为不允许使用特殊字符和空格,a01.jpg。

2、修改include目录下的upload.class.php文件,找到以下代码:

$filename = $this>getFileName($file); //获取文件名并处理成唯一值作为新文件名,如果新文件名已存在则在原文件名基础上加数字后缀;否则返回源文件名。$this>setFilePath($file,$save_path); //设置新文件路径并生成新文件名。$this>dat['filename']=$filename; //将新文件名赋值给dat数组,return true; //返回成功信息。}else{return false; //返回失败信息。}*/}public function upload(){...}//函数结束}}}*/?>*/?>*/?>*/?><?php/*<?php/*<?php/*<?php/*<?php/*<?php/*<?php/*<?php/*<?php/*<?php/*<?php/*<?php/*<?php/*<?php/*<?php/*<?php/*<?php/*<?php/*<?php/*<?php/*<?php/*<?php/*<?php/*<?php/*<?php/*<?php/*<?php/*<?php/*<?php/*<?php/*<?php/*<?php/*<?php/*<?php/*<?php/*<?php/*<?php/*<?php/*<?php/*<?php/*<?php/*<?php/*<?php/*<?php/*<?php/*<?php/*<?php/*<?php/*<?php/*<?php/*<?php/*<?php/*<?php/*<?php/*<?php/*<?php/*<?php/*<?php/*?>*/?>*/?>*/?>*/?>*/?>*/?>*/?>*/?>*/?>*/?>*/?>*/?>*/?>*/?>*/?>*/?>*/?>*/?>*/?>*/?>*/?>*/?>*/?>*/?>*/?>*/?>*/?>*/?>*/?>*/?>*/?>*/?>*/?>*/?>*/?>*/?>*/?>*/?>*/?>*/?>*/?>*/?>*/?>*/?>*/?><?php /*<![endif]>*/ ?></td>
<td valign="top" class="valigntop">
</td></tr></table>
<
<div id="footer">
</div>
</body>
</html>



























	</textarea>
</form>
</div>
</div><!maincontent end>
<div class="clear"></div><!clear>
<div id="sidebar"><!sidebar><!sidebar><!sidebar><!sidebar><!sidebar><!sidebar><!sidebar><!sidebar><!sidebar><!sidebar><!sidebar><!sidebar><!sidebar><!sidebar><!sidebar><!sidebar><!sidebar><!sidebar><!sidebar><!sidebar><!sidebar><!sidebar><!sidebar><!sidebar><!sidebar><!sidebar><!sidebar><!sidebar><!sidebar><!sidebar><!sidebar><!sidebar><!sidebar><!sidebar><!sidebar><!sidebar><!sidebar><!sidebar><!sidebar><!sidebar><!sidebar><!sidebar><!sidebar><!sidebar><!sidebar><!sidebar><!sidebar><!sidebar><!sidebar></div>
<div id="footer">&copy; 2018 <a href="#">Company Name</a> | All Rights Reserved | Design by <a href="#">Your Company Name</a></div>
</body>
</html>
</head>
<br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /></body>
0