OpenX 的 adclick.php, ck.php 兩處會將 URI 解析,並放置 Location header 中。
adclick.php 的原始碼:
$destination = MAX_querystringGetDestinationUrl($adId[0]);
MAX_redirect($destination);
"MAX_redirect" 的處理 function 如下
function MAX_redirect($url)
{
if (!preg_match('/^(?:javascript|data):/i', $url)) {
header('Location: '.$url);
MAX_sendStatusCode(302);
}
可以看到 function 直接將 "$dest" parameter 放進 header 函式中,故造成 Open Redirect attacks
(1) 在 "adclick.php" 中, "&dest" parameter 是漏洞被利用的參數
(2) 對於 "ck.php" ,它使用 "adclick.php" 檔案,漏洞利用在 "_maxdest" parameter
打 patch 。
參考資料:http://seclists.org/fulldisclosure/2014/Oct/72