互聯網上的大多數Web應用程式經常將用戶重定向並轉發到其他頁面或其他外部網站。但是,如果不驗證這些頁面的可信度,駭客可以將受害者重定向到網路釣魚或惡意軟體站點,或者使用轉發來訪問未經授權的頁面。
讓我們來瞭解這個漏洞的威脅代理,攻擊向量,安全弱點,技術影響和業務影響。
- 威脅代理 - 檢測發現未經檢查的重定向很容易。查找可以設置完整URL的重定向。未經檢查的標頭更難,因為他們瞄準內部網頁。
- 攻擊者的方法 - 重定向可能會嘗試安裝惡意軟體或欺騙受害者披露密碼。
- 安全弱點 - 如果攻擊者僅訪問內部功能怎麼辦? 如果他們被惡意軟體欺騙怎麼辦?
- 如何發現缺陷 - 任何可以欺騙有效的應用程式用戶向網站提交請求的人。
- 技術影響 - 攻擊者鏈接到未經驗證的重定向並誘導受害者點擊它。
- 業務影響 - 應用程式經常將用戶重定向到其他頁面,或以類似方式使用內部轉發。有時目標頁面有一個未經驗證的參數。
示例
未經驗證的重定向和轉發的一些經典示例如下 -
假設應用程式有一個頁面 - redirect.jsp
,它接受一個參數redirectrul
。駭客添加了一個惡意URL,用於重定向執行網路釣魚/安裝惡意軟體的用戶。
http://www.mywebapp.com/redirect.jsp?redirectrul=hacker.com
所有Web應用程式用於將用戶轉發到站點的不同部分。為了實現相同的目的,一些頁面使用參數來指示如果操作成功則應該將用戶重定向到何處。攻擊者製作一個URL,該URL通過應用程式的訪問控制檢查,然後將攻擊者轉發給攻擊者無法訪問的管理功能。
http://www.mywebapp.com/checkstatus.jsp?fwd=appadmin.jsp
預防機制
- 最好避免使用重定向和轉發。
- 如果它是不可避免的,那麼應該在不重定向目標的情況下涉及用戶參數的情況下完成。