Web Hacking 101 中文版 十二、開放重定向漏洞

十二、開放重定向漏洞

作者:Peter Yaworski

譯者:飛龍

協議:CC BY-NC-SA 4.0

描述

根據 OWASP,開放重定向出現在應用接受參數并將用戶重定向到該參數值,并且沒有對該值進行任何校驗的時候。

這個漏洞用于釣魚攻擊,便于讓用戶無意中瀏覽惡意站點,濫用給定站點的信任并將用戶引導到另一個站點,惡意站點作為重定向目的地,可以將其準備成合法站點的樣子,并嘗試收集個人或敏感信息。

鏈接

查看 OWASP 無驗證重定向和轉發速查表

示例

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 的平臺允許商店管理員自定義商店外觀。為此,管理員需要安裝主題。這里的漏洞時,主題安裝頁面會解釋重定向參數,并向用戶瀏覽器返回 301 重定向,而不驗證重定向的目標。

因此,如果用戶訪問https://app.shopify.com/services/google/themes/preview/supply– blue?domain_name=example.com,它會重定向到http://example.com/admin

惡意用戶能夠在該域部署站點,并嘗試對無意識的用戶執行釣魚攻擊。

重要結論

我這里再說一遍,不是所有漏洞都很復雜。這里的開放重定向只需要將重定向參數修改為外部站點。

2. Shopify 登錄開放重定向

難度:中

URL:http://mystore.myshopify.com/account/login

報告鏈接:https://hackerone.com/reports/103772

報告日期:2015.12.6

獎金:$500

描述:

這個開放重定向非常類似于上面討論的主題安裝漏洞,但是這里。漏洞在用戶登錄,并且使用參數?checkout_url之后出現。例如:

http://mystore.myshopify.com/account/login?checkout_url=.np

因此,當用戶訪問鏈接并登錄,它會被重定向到:

https://mystore.myshopify.com.np/

它實際上完全不是 Shopify 的域。

3. HackerOne 間隔重定向

難度:中

URL:無

報告鏈接:https://hackerone.com/reports/111968

報告日期:2016.1.20

獎金:$500

描述:

這里的間隔重定向指代一些重定向,在重定向期間不發生停頓,來告訴你你正在被重定向。

HackerOne 實際上在報告中提供了該漏洞的純語言描述:

hackerone.com連接被視為可信連接,包括/zendesk_session前面的那些。任何人都可以創建自定義的 Zendesk 賬戶,它會重定向到不可信的站點,并在/redirect_to_account?state= param;提供該功能。并且由于 Zendesk 允許賬戶之間的非間隔重定向,你會被引導到任何不可信站點,而沒有任何警告。

了解 Zendesk 的原始問題之后,我們選擇將帶有zendesk_session的鏈接視為外部鏈接,點擊時會渲染一個外部的圖標和間隔警告頁面。

所以這里,Mahmoud Jamal(是的,和 Google XSS 漏洞中的人一樣)創建了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 會話。

現在,有趣的是,Mahmoud 向 Zendesk 報告了這個重定向個問題,Zendesk 說他并沒有看到任何問題。所以,自然而然,它繼續挖掘這個漏洞,看看如何才能利用。

重要結論

我們在應用邏輯一章中討論了它,但它重復出現在這里,在你搜索漏洞時,要注意站點所使用的的服務,因為在你的搜索過程中,它們每個都代表一種新的攻擊向量。這里,這個漏洞可以通過組合 Zendesk 的 HackerOne 使用方法,以及已知的所允許的重定向來實現。

此外,在你尋找 bug 時,閱讀和回應你的報告的人有時不能馬上理解安全影響。這就是我在漏洞報告中編寫這一章的原因。如果你往前推進一小步,并且在你的報告中解釋安全映像,它會確保順利解決。

但是,即使是這樣,公司有時候也會不理解你。如果是這樣,像 Mahmoud 所做的一樣,保持挖掘,并看看是否可以證明它可以利用,或者將其和其它漏洞組合來展示影響。

總結

開放重定向個允許惡意攻擊者將人們重定向到未知的惡意站點。就像這些例子展示的那樣,尋找他們需要銳利的觀察。有時會出現易于發現的redirect_to=domain_name=checkout_url=,以及其它。這種類型的漏洞依賴信任的濫用,其中受害者被誘導來訪問攻擊者的站點,并認為他們正在瀏覽他們認可的站點。

通常,當 URL 作為參數傳遞給 Web 請求時,你可以發現它們。要留意并玩轉 URL 地址,以便觀察是否接受外部站點的鏈接。

此外,HackerOne 間隔重定向展示了二者的重要性。當你尋找漏洞時,識別站點所用的工具和服務,以及有時在被認可和接受之前,你需要堅持并清晰展示漏洞。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容