会话固定漏洞
1、概述
会话固定漏洞是指用户在首次登录之后,应用程序未正确的更新或删除Session ID(会话标识符),导致后续的登录请求仍然使用初始的会话ID。这时攻击者就有可能通过捕获并使用这些持久会话ID来模拟已登录的用户,执行恶意操作。
分类: Web通用漏洞
- 风险等级及危害: 低危 一定情况下攻击者可获取用户的登陆状态,长配合XSS漏洞利用。
- 别名: Session劫持
2、漏洞原理
- 假设网站
http://www.hhgd.com/login.php
存在会话固定漏洞 - 攻击者访问此网站,网站服务器给攻击者下发了一个Session ID为1234
- 攻击者把
http://www.hhgd.com/login.php?PHPSESSID=1234
发送给用户 - 用户点击攻击者发送的链接并进行登录。
- 这时攻击者刷新自己的页面就会进入到用户的登陆状态
攻击流程:
- 会话设置: 首先,攻击者要么在目标服务器上设置一个所谓的“陷阱会话”并获取该会话的ID,要么选择一个通常是任意的会话ID用于攻击。在某些情况下,需要通过反复发送引用该会话的请求来保持(保持活动)已经建立的陷阱会话,以避免空闲会话超时。
- 会话固定: 接下来,攻击者需要将她的会话ID引入用户的浏览器,从而固定他的会话。
- 会话进入: 最后,攻击者必须等待用户使用先前固定的会话ID登录到目标服务器,然后进入用户的会话。
3、漏洞防御
- 在用户登陆成功之后重新创建一个Session ID
- Session ID与浏览器/IP绑定:若浏览器/IP不同,立即重置Session ID2q2