十二、開放重定向漏洞
作者:Peter Yaworski
譯者:飛龍
協(xié)議:CC BY-NC-SA 4.0
描述
根據(jù) OWASP,開放重定向出現(xiàn)在應(yīng)用接受參數(shù)并將用戶重定向到該參數(shù)值橘原,并且沒有對該值進行任何校驗的時候。
這個漏洞用于釣魚攻擊涡上,便于讓用戶無意中瀏覽惡意站點趾断,濫用給定站點的信任并將用戶引導(dǎo)到另一個站點,惡意站點作為重定向目的地吩愧,可以將其準備成合法站點的樣子芋酌,并嘗試收集個人或敏感信息。
鏈接
示例
1. Shopify 主題安裝開放重定向
難度:低
URL:app.shopify.com/services/google/themes/preview/supply–blue?domain_name=XX
鏈接:https://hackerone.com/reports/1019622
報告日期:2015.11.25
獎金:$500
描述:
Shopify 的平臺允許商店管理員自定義商店外觀雁佳。為此脐帝,管理員需要安裝主題。這里的漏洞時糖权,主題安裝頁面會解釋重定向參數(shù)堵腹,并向用戶瀏覽器返回 301 重定向,而不驗證重定向的目標(biāo)星澳。
因此疚顷,如果用戶訪問https://app.shopify.com/services/google/themes/preview/supply– blue?domain_name=example.com
,它會重定向到http://example.com/admin
。
惡意用戶能夠在該域部署站點腿堤,并嘗試對無意識的用戶執(zhí)行釣魚攻擊阀坏。
重要結(jié)論
我這里再說一遍,不是所有漏洞都很復(fù)雜释液。這里的開放重定向只需要將重定向參數(shù)修改為外部站點全释。
2. Shopify 登錄開放重定向
難度:中
URL:http://mystore.myshopify.com/account/login
報告鏈接:https://hackerone.com/reports/103772
報告日期:2015.12.6
獎金:$500
描述:
這個開放重定向非常類似于上面討論的主題安裝漏洞,但是這里误债。漏洞在用戶登錄浸船,并且使用參數(shù)?checkout_url
之后出現(xiàn)。例如:
http://mystore.myshopify.com/account/login?checkout_url=.np
因此寝蹈,當(dāng)用戶訪問鏈接并登錄李命,它會被重定向到:
https://mystore.myshopify.com.np/
它實際上完全不是 Shopify 的域。
3. HackerOne 間隔重定向
難度:中
URL:無
報告鏈接:https://hackerone.com/reports/111968
報告日期:2016.1.20
獎金:$500
描述:
這里的間隔重定向指代一些重定向箫老,在重定向期間不發(fā)生停頓封字,來告訴你你正在被重定向。
HackerOne 實際上在報告中提供了該漏洞的純語言描述:
hackerone.com
連接被視為可信連接耍鬓,包括/zendesk_session
前面的那些阔籽。任何人都可以創(chuàng)建自定義的 Zendesk 賬戶,它會重定向到不可信的站點牲蜀,并在/redirect_to_account?state= param;
提供該功能笆制。并且由于 Zendesk 允許賬戶之間的非間隔重定向,你會被引導(dǎo)到任何不可信站點涣达,而沒有任何警告在辆。
了解 Zendesk 的原始問題之后,我們選擇將帶有
zendesk_session
的鏈接視為外部鏈接度苔,點擊時會渲染一個外部的圖標(biāo)和間隔警告頁面匆篓。
所以這里,Mahmoud Jamal(是的寇窑,和 Google XSS 漏洞中的人一樣)創(chuàng)建了company.zendesk.com
并將:
<script>document.location.;</script>
通過 Zendesk 的主題編輯器添加到了頭文件中鸦概。之后,傳遞這個鏈接:
https://hackerone.com/zendesk_session?locale_id=1&return_to=https://support.hackerone.com/ping/redirect_to_account?state=company:/
它用于重定向到生成的 Zendesk 會話甩骏。
現(xiàn)在完残,有趣的是,Mahmoud 向 Zendesk 報告了這個重定向個問題横漏,Zendesk 說他并沒有看到任何問題。所以熟掂,自然而然缎浇,它繼續(xù)挖掘這個漏洞,看看如何才能利用赴肚。
重要結(jié)論
我們在應(yīng)用邏輯一章中討論了它素跺,但它重復(fù)出現(xiàn)在這里二蓝,在你搜索漏洞時,要注意站點所使用的的服務(wù)指厌,因為在你的搜索過程中刊愚,它們每個都代表一種新的攻擊向量。這里踩验,這個漏洞可以通過組合 Zendesk 的 HackerOne 使用方法鸥诽,以及已知的所允許的重定向來實現(xiàn)。
此外箕憾,在你尋找 bug 時牡借,閱讀和回應(yīng)你的報告的人有時不能馬上理解安全影響。這就是我在漏洞報告中編寫這一章的原因袭异。如果你往前推進一小步钠龙,并且在你的報告中解釋安全映像,它會確保順利解決御铃。
但是碴里,即使是這樣,公司有時候也會不理解你上真。如果是這樣咬腋,像 Mahmoud 所做的一樣,保持挖掘谷羞,并看看是否可以證明它可以利用帝火,或者將其和其它漏洞組合來展示影響。
總結(jié)
開放重定向個允許惡意攻擊者將人們重定向到未知的惡意站點湃缎。就像這些例子展示的那樣犀填,尋找他們需要銳利的觀察。有時會出現(xiàn)易于發(fā)現(xiàn)的redirect_to=
嗓违,domain_name=
九巡,checkout_url=
,以及其它蹂季。這種類型的漏洞依賴信任的濫用冕广,其中受害者被誘導(dǎo)來訪問攻擊者的站點,并認為他們正在瀏覽他們認可的站點偿洁。
通常撒汉,當(dāng) URL 作為參數(shù)傳遞給 Web 請求時,你可以發(fā)現(xiàn)它們涕滋。要留意并玩轉(zhuǎn) URL 地址睬辐,以便觀察是否接受外部站點的鏈接。
此外,HackerOne 間隔重定向展示了二者的重要性溯饵。當(dāng)你尋找漏洞時侵俗,識別站點所用的工具和服務(wù),以及有時在被認可和接受之前丰刊,你需要堅持并清晰展示漏洞隘谣。