三、因会话管理疏忽引发的安全漏洞
会话管理是用来管理用户状态的必备功能,但是如果在会话挂你上有所疏忽,就会导致用户的认证状态被窃取等后果。
1 会话劫持
会话劫持(Session Hijack)是指攻击者通过某种手段拿到用户的会话ID,并非法使用此会话ID伪装成用户,达到攻击的目的。
具备认证功能的Web应用,使用会话ID的会话管理机制,作为管理认证状态的主流方式。会话ID中记录客户端的Cookie等信息,服务器端将会话ID与认证状态进行一对一匹配管理。
可获得会话ID的方式:
非法生成推测
*窃取或者XSS攻击盗取
*会话固定攻击强行获取
#### 2 会话固定攻击
对以窃取目标会话ID为主动攻击手段的会话劫持而言,会话固定攻击(Session Fixation)攻击会强制用户使用攻击者指定的会话ID,属于被动攻击。
2.1 会话固定攻击案例
例如某个网站,具有认证功能,会在认证前发布一个会话ID,若认证成功,就会在服务器内改变认证状态。
1.攻击者准备陷阱,先访问Web网站拿到会话ID。此刻,会话ID还是未认证的状态。
2.攻击者设置好强制用户使用该会话的陷阱,并等待用户拿着这个ID前去认证。一旦用户触发陷阱并完成认证,会话ID在服务器上的状态变成认证,就会被记录下来。
3.攻击者等用户触发陷阱后,再利用之前的会话ID访问网站。由于该会话ID已由用户认证,所以攻击者可以冒充真正的