测试失效的身份验证

当与应用程序相关的身份验证功能未正确实施时,黑客便可利用其他用户凭据来窃取密码或会话 ID,或利用其他实施漏洞。

借助简单的图表,让我们了解此漏洞的威胁代理、攻击媒介、安全漏洞、技术影响和业务影响。

2.失效的身份验证和会话管理漏洞

示例

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 = 65432ubphcf​​x(身份验证成功后)。

2.Broken Auth and Session Mgmt Flaws

2.Broken Auth and Session Mgmt Flaws

步骤 3 −当我们使用凭证方面/方面登录时,我们从 Burp Suite 中发现 JSESSION ID 为 C8F3177CCAFF380441ABF71090748F2E,而身份验证成功后 AuthCookie = 65432udfqtb。

2.Broken Auth and Session Mgmt Flaws

步骤 4 − 现在我们需要分析 AuthCookie 模式。前半部分"65432"对于两种身份验证都是通用的。因此,我们现在感兴趣的是分析 authcookie 值的最后一部分,例如 - ubphcf​​x 代表 webgoat 用户,udfqtb 代表方面用户。

步骤 5 −如果我们仔细查看 AuthCookie 值,就会发现最后一部分的长度与用户名的长度相同。因此,很明显用户名使用了某种加密方法。经过反复试验/暴力破解机制,我们发现在反转用户名 webgoat 后,我​​们最终得到了 taogbew,然后之前的字母字符就是用作 AuthCookie 的字符。即 ubphcf​​x。

步骤 6 − 如果我们传递这个 cookie 值,让我们看看会发生什么。在以用户 webgoat 的身份进行身份验证后,通过执行步骤 4 和步骤 5 查找相同的 AuthCookie,更改 AuthCookie 值以模拟用户 Alice。

2.Broken Auth and Session Mgmt Flaws

2.Broken Auth and Session Mgmt Flaws

预防机制

  • 开发强大的身份验证和会话管理控制,使其满足 OWASP 应用程序安全验证标准中定义的所有身份验证和会话管理要求。

  • 开发人员应确保避免可用于窃取会话 ID 的 XSS 漏洞。