
- 安全測試教程
- 安全測試 - 首頁
- 安全測試 - 概述
- 安全測試 - 流程
- 安全測試 - 惡意軟體
- HTTP 協議基礎
- HTTPS 協議基礎
- 編碼和解碼
- 安全測試 - 密碼學
- 安全測試 - 同源策略
- 安全測試 - Cookie
- 駭客攻擊 Web 應用程式
- 安全測試 - 注入
- 測試破損的身份驗證
- 測試跨站指令碼攻擊
- 不安全的直接物件引用
- 測試安全錯誤配置
- 測試敏感資料洩露
- 缺少功能級訪問控制
- 跨站請求偽造
- 存在漏洞的元件
- 未經驗證的重定向和轉發
- 安全測試 - Ajax 安全
- 測試安全 - Web 服務
- 安全測試 - 緩衝區溢位
- 安全測試 - 拒絕服務
- 測試惡意檔案執行
- 安全測試 - 自動化工具
- 安全測試有用資源
- 安全測試 - 快速指南
- 安全測試 - 有用資源
- 安全測試 - 討論
測試破損的身份驗證
當與應用程式相關的身份驗證功能未正確實現時,它允許駭客洩露密碼或會話 ID,或利用其他實現缺陷使用其他使用者的憑據。
讓我們藉助簡單的圖表瞭解此缺陷的威脅代理、攻擊媒介、安全弱點、技術影響和業務影響。

示例
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 - 當我們使用憑據 webgoat/webgoat 登入時,我們從 Burp Suite 中發現,成功身份驗證後,JSESSION ID 為 C8F3177CCAFF380441ABF71090748F2E,而 AuthCookie 為 65432ubphcfx。


步驟 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 找到 Alice 的 AuthCookie,更改 AuthCookie 值以模擬使用者 Alice。


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