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