漏洞說明:
$link = base64_decode(urldecode($link));
link可以構造成任意地址!
header("location:$link");
影響所有用到dedecms系統(tǒng)的網(wǎng)站。
漏洞證明:http://www.********.com/plus/download.php?open=1&link=aHR0cDovL3d3dy5iYWlkdS5jb20%3D
其中將********中間的這些星號替換為你的網(wǎng)站域名,如果跳轉到百度就說明存在漏洞。
修復思路:對link參數(shù)做判斷,對不是本站域名的跳轉請求予以阻斷,防止重定向非法跳轉??!
具體操作:
1:文件路徑:根目錄下/plus/download.php中打開:
2:搜索代碼header("location:$link"); 替換為如下:
if(stristr($link,$cfg_basehost)) { header("location:$link"); } else { header("location:$cfg_basehost"); }