织梦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">© 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>
原创文章,作者:未希,如若转载,请注明出处:https://www.kdun.com/ask/679961.html
本网站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本网站。如有问题,请联系客服处理。
发表回复