测试失效的验证

测试失效的验证

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