在使用网站体检工具scanv时,我们发现了一个与DedeCMS 5.7SP1相关的漏洞——/plus/download.php URL重定向漏洞。这一问题不仅影响了官方网站的最新下载包,还波及到了官方演示站点,尽管官方自身网站已经修复了该漏洞。

 

此漏洞的核心在于DedeCMS 5.7SP1版本中的/plus/download.php文件存在URL重定向安全隐患。以下是详细分析和解决方法:

 

漏洞原因:

DedeCMS中,$link参数通过以下代码进行处理:

$link = base64_decode(urldecode($link));

 

由于未对$link参数进行严格校验,攻击者可以构造任意地址,并通过以下代码实现恶意跳转:

header("location:$link");

 

这种行为可能导致用户被引导至恶意网站,从而引发钓鱼或欺诈风险。

 

漏洞验证:

可以通过以下方式测试您的网站是否存在该漏洞:

访问以下链接(将“**”替换为您的实际域名):

http://www.**.com/plus/download.php?open=1&link=aHR0cDovL3d3dy5iYWlkdS5jb20%3D

 

如果页面跳转到其他网站,则表明您的系统存在此漏洞。

 

修复方案:

为了防止非同源跳转带来的安全风险,建议对$link参数进行严格校验。具体修改步骤如下:

打开/plus/download.php文件,找到以下代码:

header("location:$link");

 

将其替换为:

if(stristr($link,$cfg_basehost))  
{  
    header("location:$link");  
}  
else  
{  
    header("location:$cfg_basehost");  
}

 

代码说明:

上述代码的作用是检查$link参数是否包含当前网站的基本域名($cfg_basehost)。如果是,则允许正常跳转;否则,强制跳转到网站首页,避免用户被引导至外部恶意站点。

 

总结:

DedeCMS 5.7SP1 /plus/download.php URL重定向漏洞是一个需要引起重视的安全问题。通过上述修复方案,您可以有效避免潜在的钓鱼或欺诈风险,同时确保网站符合现代安全标准。完成修复后,再次使用scanv或其他体检工具检测,确认漏洞已被成功解决。