OWASP WebGoat---安全测试学习笔记(十七)---会话管理缺陷

会话管理缺陷(Session  Management  Flaws)




主题:

1.会话劫持

概念:

        因为HTTP是没有状态的,所以就有了会话管理的概念。服务器通过会话管理,来记忆用户的状态。在用户访问WEB站点的过程中,会话管理对每个用户

都有一个唯一的标识(SessionID),而每当新用户访问网站时,服务器上也会有一个相应的标号来记录。而且该用户所有后续的页面请求都会包含此标号,

这样WEB应用程序就能识别此用户,并记录其状态。服务器端的会话标识可能是通过Cookie、URL(URL重写)、隐藏域的方式保存在浏览器中。通常情况,

会话标识(SessionID)是加密保存在Cookie中的,随着HTTP请求头发送,并在每次加载页面时传递给服务器。

        攻击者的目的是通过窃取并使用合法用户的会话标识(SessionID)伪装成合法用户,即会话劫持



方法:

        会话劫持最常用的方法就是窃取用户会话标识。会话劫持是在合法用户的会话ID被使用之后对其进行占用。例如:对会话的处理不当会使得攻击者可能猜

到相邻的会话标识。 跨站脚本攻击(XSS),网络嗅探(Net Sniffer),本地木马等。

        另一种对会话管理进行攻击的方式叫做“会话定位(Session Fixation)”。原理是合法用户使用了攻击者为其准备好的会话ID进行身份认证,如此攻击者就

可以随意通过此会话ID劫持用户会话。而解决Session Fixation的办法是在登录完成后,重写SessionID。这样,攻击者准备好的会话ID对于已经完成身份认证

的用户就无效了。因为对于正常用户来说,已经是另一个会话(SessionID不同)了。



防御:

    对会话标识号的分配(不能让攻击者轻易猜到绘画标识)

    加强对会话标识号的保护

    设置合适的会话标识有效时间






2.认证Cookie欺骗

       如果验证cookie正确,一些应用程序会允许一个用户自动登录到他们的网站。如果能够获得生成cookie的算法,有时cookie的值是可以猜到的。

有时候cookie可能是通过跨站攻击截获的。

        课程目标:了解身份验证cookie的方式,并指导您学习突破这种身份验证cookie的方法。







3.会话定位(Session Fixation)

        服务器通过每个用户唯一的SessionID来确认其合法性。若用户已登录,并且授权他不必重新验证授权时,当他重新登录应用系统时,他的SessionID依然

是被认为合法的。在一些程序中,可能会在GET请求中传递SessionID,这就是攻击的起点。一个攻击者可以用一个选定的SessionID给受害人发送一个超链接。

        例如有一个准备好的邮件,看起来像是一个从应用程序管理员发来的官方邮件。若受害者点击了这个链接,并且该受害者以攻击者指定的ID登录了系统,

那么攻击者可以不经授权直接使用与受害者相同的ID访问该页面。









参考:

        《WEB安全测试》、《白帽子讲Web安全》、《WebGoat v2.2技术文档》、《OWASP Testing Guide v3.0》




注:





你可能感兴趣的:(Security)