在使用网站体检工具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或其他体检工具检测,确认漏洞已被成功解决。