在 绝大多数Web应用程序中,会话管理机制是一个基本的安全组件。它帮助应用程序从大量不同的请求中确认特定的用户,并处理它收集的关于用户与应用程序交互状态的数据。会话管理在应用程序执行登录功能时显得特别重要,因为它可在用户通过请求提交他们的证书后,持续向应用程序保证任何特定用户身份的真实性。
由于会话管理机制所发挥的关键作用,它们成为针对应用程序的恶意攻击的主要目标。如果攻击者能够破坏应用程序的会话管理,他就能轻易避开其实施的验证机制,不需要用户证书即可伪装成其他应用程序用户。如果攻击者以这种方式攻破一个管理用户,那么他就能够控制整个应用程序。
和验证机制一样,通常会话管理功能中也存在着大量缺陷。在最容易遭受攻击的情况下,攻击者只需递增应用程序向他们发布的令牌值,就可以转换到另一名用户的账户。在这种情况下,任何人都可以访问应用程序的全部功能。另一方面,如果应用程序受到严密保护,攻击者必须付出巨大的努力,破解几层模糊处理并实施复杂的自动攻击,才能发现应用程序中存在的细小漏洞。
本章将分析我们在现实世界的Web应用程序中发现的各种漏洞,详细说明发现和利用这些漏洞所需执行的实际步骤。最后还将描述应用程序为防止这些攻击所应采取的防御措施。
错误观点
“我们使用智能卡进行验证,没有智能卡攻击者不可能攻破用户会话。”
无论应用程序的验证机制多么安全稳定,只有通过会话用户随后提出的请求才能与验证机制建立联系。如果应用程序的会话管理存在缺陷,攻击者仍然能够避开可靠的验证机制,危及用户的安全。