当与应用程序相关的身份验证功能未正确实现时,它允许黑客利用其他用户凭据破坏密码或会话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.当他的朋友使用该链接时,他们会使用他的会话和信用卡.
Hands On
第1步登录Webgoat并导航到"会话管理缺陷"部分.让我们通过欺骗cookie来绕过验证.下面是该场景的快照.
第2步当我们使用凭证webgoat/webgoat登录时,我们从Burp Suite中发现JSESSION ID为C8F3177CCAFF380441ABF71090748F2E,而成功验证后AuthCookie = 65432ubphcfx.
第3步当我们使用凭证方面/方面登录时,我们从Burp Suite中发现JSESSION ID是C8F3177CCAFF380441ABF71090748F2E,而成功验证后AuthCookie = 65432udfqtb.
Step 4 现在我们需要分析AuthCookie模式.上半部分'65432'对于两种身份验证都很常见.因此,我们现在有兴趣分析authcookie值的最后部分,例如 - ubphcfx for webgoat user和udfqtb for aspect user.
步骤5 如果我们深入了解AuthCookie值,最后一部分的长度与用户名的长度相同.因此很明显,用户名与一些加密方法一起使用.经过试用和错误/暴力机制,我们发现在颠倒用户名后,webgoat;我们最终得到了taogbew,然后前面的字母字符被用作AuthCookie.即ubphcfx.
第6步如果我们传递这个cookie值,让我们看看会发生什么.在作为用户webgoat进行身份验证后,通过执行步骤#4和步骤#5,通过查找AuthCookie来更改AuthCookie值以模拟用户Alice.
防止机制
开发强大的身份验证和会话管理控制,使其满足OWASP的应用程序安全验证标准中定义的所有身份验证和会话管理要求.
开发人员应确保他们避免了可用于窃取会话ID的XSS漏洞.