測試失效的驗證

當與應用程式相關的身份驗證功能未正確實現時,它允許駭客利用其他用戶憑據破壞密碼或會話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漏洞。

上一篇: 安全測試SQL注入 下一篇: 測試跨站點腳本(XSS)