会话固定(Session fixation)是一种诱骗受害者使用攻击者指定的会话标识(Session ID)的攻击手段。这是攻击者获取合法会话标识的最简单的方法。会话固定也可以看成是会话劫持的一种类型,原因是会话固定的攻击的主要目的同样是获得目标用户的合法会话。不过会话固定还可以是强迫受害者使用攻击者设定的一个有效会话,以此来获得用户的敏感信息。
- 访问网站时,网站会设置cookie中的Session ID
- 当用户登录后,cookie中的SessionID保持不变(形成原因)
- 只要获取登陆前的Session ID内容,就可以知道登陆后的Session ID
- 黑客用该Session ID构造链接,发送给受害者点击后,黑客成功劫持受害者的会话
漏洞检测 #
**访问网站(未登录):**获取cookie信息,获取Session ID
**登录网站:**查看Cookie信息,获取Session ID
查看登录前,登录后SessionID是否相同
防御方法 #
1、在用户登录成功后重新创建一个Session ID,使登录前的匿名会话强制失效
// 会话失效 session.invalidate(); // 会话重建 session=request.getSession(true);
2、**SessionID与浏览器绑定:**SessionID与所访问浏览器有变化,立即重置
3、**SessionID与所访问的IP绑定:**SessionID与所访问IP有变化,立即重置