【滲透測試】濫用網址縮短器

網址縮短器允許用戶將200個字符的URL轉換成實質上更少的內容。它非常適合那些文本空間有限但需要使用鏈接的情況,例如短信或推文。雖然方便,但錯誤的實施可能會使業務暴露。在這篇文章中,研究人員分享了其濫用URL縮短器的經驗,并涵蓋2種不同實現的3種不同攻擊場景。
#1 - 訪問內部統計數據
研究人員偶然發現目標程序使用了一個網址縮短器,它似乎是定制的,而不是使用第三方服務。這似乎在整個企業內部使用,因為大多數收集的URL會重定向到登錄頁面。但是,通過訪問一個無效的URL,應用程序將進入損壞的404頁面。檢查源代碼發現其暴露了多個端點,這些端點允許經過身份驗證的用戶,添加/編輯/刪除 URL以及查看統計信息。除三個統計端點外,所有端點都需要身份驗證。它們包括點擊次數、瀏覽器和每個鏈接使用的平臺的統計數據。下面是一個有效載荷示例:
var xhr = new XMLHttpRequest();
var result = '';
var url = "/stats/clicks";
xhr.open("POST", url, true);
xhr.setRequestHeader("Content-Type", "application/json");
xhr.onreadystatechange = function () {
if (xhr.readyState === 4 && xhr.status === 200) {
result = xhr.responseText;
console.log(result);
}
};
var data = JSON.stringify({"url": "a", "range": "all"});
xhr.send(data);
響應如下:
{
"labels": [
"July 2017",
"January 2018",
"July 2018"
],
"datasets": [
{
"data": [
517,
274,
72
]
}
],
"totalClicks": 863
}
雖然獲得的信息并不敏感,但它突出了一個需要解決的錯誤配置。這個漏洞價值 500美元。
#2 - 訪問敏感文檔
在發現第一個漏洞后不久,研究人員發現這個網址縮短器允許其用戶創建自定義 URL。經過一小段時間暴力破解這些URL,例如http://short.url/r/private、http://short.url/r/test、http://short.url/r/secret 等,研究人員發現了多個標記為敏感的文檔。這些文件的范圍從客戶合同到內部輪班表、網絡圖等等。這個漏洞價值 2000美元。
#3 - 網址抓取
濫用網址縮短器的另一個例子是來自一條短信。 短信上面寫著[用戶名],在任何 Hulk 老虎機上押注10英鎊即可立即獲得10次免費旋轉-http://cora1.co.uk/xyzabc 。點擊此鏈接會被重定向到一個促銷頁面,該頁面的URL的參數中包含用戶名和手機號碼。
https://cora1.co.uk網址使用了Bitly提供的URL縮短服務,因此通過修改URL并附加加號,就能夠看到鏈接的統計頁面,例如https://cora1.co.uk/xyzabc+。
這本身并不是什么大問題,問題是能夠看到發布URL的用戶。如果我們轉到用戶個人資料,例如https://bitly.com/u/user_xxx,它將顯示總共創建了169k鏈接。如果我要查看頁面的來源并搜索參數MOBILE_NUMBER=,將獲取到Coral成員的英國手機號碼。隨后可以創建一個簡單的網站抓取工具來利用該漏洞,遍歷員工個人資料的每一頁,以抓取客戶的手機號碼。
最后的想法
如果你偶然發現滲透目標使用的URL 縮短器。請務必嘗試以下 3 種攻擊場景:
- 暴力破解 - URL是否可預測?對URL使用字典攻擊來捕獲重定向位置以供進一步查看。
- 抓取 - 重定向是否包含個人信息?URL是否可預測?收集數據。
- 身份驗證 - 這是一個定制的應用程序嗎?檢查源代碼中所有暴露的端點是否正確驗證會話。