测试破损的身份验证



当与应用程序相关的身份验证功能未正确实现时,它允许黑客泄露密码或会话 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 漏洞。

广告