漏洞说明:
$link = base64_decode(urldecode($link));
link可以构造成任意地址!
header("location:$link");
影响所有用到dedecms系统的网站。
漏洞证明:http://www.********.com/plus/download.php?open=1&link=aHR0cDovL3d3dy5iYWlkdS5jb20%3D
其中将********中间的这些星号替换为你的网站域名,如果跳转到百度就说明存在漏洞。
修复思路:对link参数做判断,对不是本站域名的跳转请求予以阻断,防止重定向非法跳转!!
具体操作:
1:文件路径:根目录下/plus/download.php中打开:
2:搜索代码header("location:$link"); 替换为如下:
if(stristr($link,$cfg_basehost)) { header("location:$link"); } else { header("location:$cfg_basehost"); }