漏洞概述:


在早期版本的Dedecms中,后台集成了大量的富文本编辑器,这些编辑器提供了文件上传接口。然而,Dedecms对上传文件的后缀类型并未实施严格的限制,这使得攻击者能够利用这一漏洞上传WEBSHELL,从而获取网站后台权限。


 


需要注意的是,云盾提供的补丁是其自研的代码修复方案。云盾会根据当前代码是否符合其自研的修复模式进行检测。如果您通过底层或框架统一修复,或者采用了其他修复方案,即使漏洞已修复,云盾仍可能报告存在漏洞。在这种情况下,可以选择忽略提示。


 


下面将详细介绍如何修复这一漏洞:


 


首先,定位到Dedecms后台管理目录下的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("你指定的文件名被系统禁止!", 'java script:;');
    exit();
}

 


这段代码的作用是对上传文件的后缀进行严格检查,防止恶意文件上传。如果检测到文件后缀为phpplcgi等危险类型,系统将阻止上传并显示错误信息。


 


完成以上修改后,重新测试上传功能,确保只有允许的文件类型可以成功上传,而危险文件则被拦截。


 


此外,建议定期更新Dedecms至最新版本,以获得官方提供的安全补丁和改进功能。同时,加强服务器的安全配置,例如启用防火墙、限制不必要的端口开放等措施,进一步降低被攻击的风险。


 


通过以上方法,您可以有效解决Dedecms后台文件media_add.php任意上传漏洞问题,保护网站免受潜在威胁。