未經驗證的重定向和轉發


網際網路上的大多數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

預防機制

  • 最好避免使用重定向和轉發。
  • 如果它是不可避免的,那麼應該在不重定向目標的情況下涉及使用者引數的情況下完成。