測試失效的驗證


當與應用程式相關的身份驗證功能未正確實現時,它允許駭客利用其他使用者憑據破壞密碼或對談ID或利用其他實施缺陷。
下面我們藉助簡單的圖表來瞭解這個漏洞的威脅代理,攻擊向量,安全弱點,技術影響和業務影響。

  • 威脅代理 - 匿名外部攻擊者以及擁有自己帳戶的使用者可能會嘗試從其他人那裡竊取帳戶。
  • 攻擊者的方法 - 在身份驗證或對談管理功能中使用洩漏或漏洞。例如,公開的帳戶密碼,用於冒充使用者的對談ID。
  • 安全弱點 - 開發人員經常構建自定義身份驗證和對談管理方案,但正確構建這些方案很難。
  • 如何發現缺陷 - 找到這樣的缺陷有時會很困難,因為每個實現都是獨一無二的。
  • 技術影響 - 可能會使某些甚至所有帳戶受到損害。一旦成功,攻擊者就可以做受害者可以做的任何事情。
  • 業務影響 - 漏洞的公開曝光。受影響的資料或應用程式功能的業務價值。

範例

電子商務應用程式支援URL重寫,將對談ID放在URL中 -

http://example.com/sale/saleitems/jsessionid=2P0OC2JSNDLPSKHCJUN2JV/?item=laptop

網站的經過身份驗證的使用者會將URL轉發給他們的朋友,以了解折扣銷售情況。他通過電子郵件傳送上述連結,卻不知道使用者在使用對談ID。當他的朋友點選連結時,他們可以使用他的對談和信用卡。

動手實踐

第1步 - 登入Webgoat並導航到「對談管理缺陷」部分。這裡將通過欺騙cookie來繞過驗證。以下是該場景的快照。

第2步 - 當使用憑證webgoat/webgoat登入時,我們從Burp Suite中發現JSESSION ID是C8F3177CCAFF380441ABF71090748F2E,而成功驗證後AuthCookie = 65432ubphcfx

JSESSION ID

第3步 - 當使用憑證aspect/aspect登入時,我們從Burp Suite中發現JSESSION ID是C8F3177CCAFF380441ABF71090748F2E,而成功驗證後AuthCookie = 65432udfqtb


第4步
- 現在我們需要分析AuthCookie模式。上半部分’65432’對於兩種身份驗證都很常見。因此,我們現在分析authcookie值的最後部分,例如 - 對於webgoat使用者的ubphcfx和對於aspect使用者的udfqtb

第5步 - 如果我們深入了解AuthCookie值,最後一部分的長度與使用者名的長度相同。因此很明顯,使用者名與一些加密方法一起使用。經過試用和錯誤/暴力機制,我們發現在顛倒使用者名後,webgoat,最終得到了taogbew,然後前面的字母字元被用作AuthCookie。即ubphcfx

第6步 - 如果傳遞此cookie值,看看會發生什麼。在使用者webgoat進行身份驗證後,通過執行第4步和第5步,通過查詢AuthCookie來驗證使用者Alice,以更改AuthCookie值。

預防機制

  • 開發強大的身份驗證和對談管理控制,使其滿足OWASP的應用程式安全驗證標準中定義的所有身份驗證和對談管理要求。
  • 開發人員應確保避免可用於竊取對談ID的XSS漏洞。