測試破損的身份驗證



當與應用程式相關的身份驗證功能未正確實現時,它允許駭客洩露密碼或會話 ID,或利用其他實現缺陷使用其他使用者的憑據。

讓我們藉助簡單的圖表瞭解此缺陷的威脅代理、攻擊媒介、安全弱點、技術影響和業務影響。

2.Broken Auth and Session Mgmt Flaws

示例

An e-commerce application supports URL rewriting, putting session IDs in the URL −

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

網站的已認證使用者轉發 URL 給他們的朋友,以瞭解折扣銷售資訊。他傳送上述連結的電子郵件,卻不知道他也在洩露會話 ID。當他的朋友使用該連結時,他們會使用他的會話和信用卡。

動手操作

步驟 1 - 登入 Webgoat 並導航到“會話管理缺陷”部分。讓我們透過偽造 Cookie 來繞過身份驗證。以下是場景的快照。

2.Broken Auth and Session Mgmt Flaws

步驟 2 - 當我們使用憑據 webgoat/webgoat 登入時,我們從 Burp Suite 中發現,成功身份驗證後,JSESSION ID 為 C8F3177CCAFF380441ABF71090748F2E,而 AuthCookie 為 65432ubphcfx。

2.Broken Auth and Session Mgmt Flaws

2.Broken Auth and Session Mgmt Flaws

步驟 3 - 當我們使用憑據 aspect/aspect 登入時,我們從 Burp Suite 中發現,成功身份驗證後,JSESSION ID 為 C8F3177CCAFF380441ABF71090748F2E,而 AuthCookie 為 65432udfqtb。

2.Broken Auth and Session Mgmt Flaws

步驟 4 - 現在我們需要分析 AuthCookie 模式。前半部分“65432”對兩種身份驗證都是通用的。因此,我們現在感興趣的是分析 authcookie 值的後半部分,例如 webgoat 使用者的 ubphcfx 和 aspect 使用者的 udfqtb。

步驟 5 - 如果我們仔細觀察 AuthCookie 值,後半部分與使用者名稱具有相同的長度。因此,很明顯,使用者名稱使用某種加密方法。經過反覆試驗/暴力破解機制,我們發現,在反轉使用者名稱 webgoat 後,我們得到 taogbew,然後使用前一個字母字元作為 AuthCookie,即 ubphcfx。

步驟 6 - 如果我們傳遞此 Cookie 值並檢視會發生什麼。在以使用者 webgoat 身份進行身份驗證後,透過執行步驟 4 和步驟 5 找到 Alice 的 AuthCookie,更改 AuthCookie 值以模擬使用者 Alice。

2.Broken Auth and Session Mgmt Flaws

2.Broken Auth and Session Mgmt Flaws

預防機制

  • 開發強大的身份驗證和會話管理控制,使其滿足 OWASP 的應用程式安全驗證標準中定義的所有身份驗證和會話管理要求。

  • 開發人員應確保避免可用於竊取會話 ID 的 XSS 漏洞。

廣告