Session Hijacking 会话劫持
攻击者拿到合法用户的 Session ID 的事件。结果是攻击者能直接以受害者身份操作系统 —— 不用密码、不用绕 MFA,因为系统认的是 session 而不是凭据。
为啥比偷密码还可怕
| 维度 | 偷密码 | 偷 Session |
|---|---|---|
| 绕过 MFA | 不能 | 能(MFA 在登录时验,session 已过这步) |
| 用户感知 | 改密码异常登录提醒 | 几乎无感 |
| 防御重置 | 改密码就行 | 必须使所有 session 失效 |
偷 Session 的常见路径
- XSS → JS 读 cookie(没设 HttpOnly)→ 发给攻击者
- 网络嗅探 → 没用 HTTPS / 在公共 WiFi → 明文抓 cookie
- MITM 中间人 → 假证书 / SSL 剥离
- 恶意浏览器扩展 → 直接读所有 cookie
- 物理访问 → 借用电脑拷贝 cookie 文件
- Session Fixation → 让受害者用攻击者设好的 session
防御措施
- Cookie 加
HttpOnlySecureSameSite—— 见 Session Cookie - 全站 HTTPS,启用 HSTS
- 登录后重新生成 session ID(防 fixation)
- 绑定 IP / User-Agent(过严会误杀真用户,要权衡)
- 短 session 过期 + 滑动续期
- 异常检测:同 session 突然换大陆 → 强制重登
- 让用户能”踢掉所有其他设备”
真实案例
- Firesheep (2010) —— Firefox 扩展,公共 WiFi 一键劫持 Facebook session,逼 Facebook 全站上 HTTPS
- 2024 Snowflake 客户数据泄露 —— 多家被偷 session token,绕过 MFA