什么是会话劫持?令牌被盗后为何能绕过正常账号登录流程

什么是会话劫持?令牌被盗后为何能绕过正常账号登录流程

Marcus Reid
2026年8月28日· 7 分钟阅读

会话劫持(session hijacking)是滥用有效的会话标识,让服务把攻击者当作已认证用户。攻击者可能根本不知道密码:握有活跃令牌,在服务使其过期、轮换或撤销前可能就够了。

关键要点

  • 认证在登录时证明身份;会话令牌把这个结果带到之后的每个请求中。
  • 令牌可能被泄露、截获、预测、在登录前被固定,或从浏览器、设备中被盗。
  • 改密码并不会在所有服务上撤销现有会话,显式让会话失效很重要。
  • HTTPS 和安全的 Cookie 设置能保护重要路径,但单靠它们无法解决 XSS、恶意扩展或终端恶意软件。

账号、设备与网络的整体模型,请先看网络安全指南。

会话劫持怎样发生?

HTTP 请求彼此独立,Web 服务需要记住浏览器已认证。它签发会话标识(通常是 Cookie),浏览器在后续请求中出示。OWASP 指出,已认证的会话令牌暂时等同于创建它时的认证方式。[1]NIST 把对应的会话密钥描述为持续绑定用户软件与服务的值。[2]

攻击路径通常是:

  1. 用户完成认证,获得会话令牌。
  2. 攻击者获取、预测、注入或以其他方式控制一个有效令牌。
  3. 攻击者把这个令牌发给服务。
  4. 服务发现会话有效,于是按受害者的权限处理请求。
  5. 攻击者持续使用账号,直到令牌被拒绝、过期、轮换或撤销。

所以安全边界不只是登录页:会话的创建、存储、传输、轮换、过期和撤销都重要。

稳健的设计还会把会话连续性与授权新鲜度分开。签发时有效的令牌,不应在角色被移除、账号被停用或敏感因素变更后仍悄悄保留访问权。服务可重新核查重要授权状态,对高影响操作要求近期认证,而不是永远同等信任每个活跃会话。

被盗会话令牌有哪些来源?

方式发生了什么主要控制措施
令牌泄露或截获有效标识通过流量、日志、URL、Referer 或不安全存储泄露HTTPS、安全传输、URL 中不放令牌、安全存储
会话固定攻击者让受害者用一个攻击者已知的标识完成认证拒绝非服务签发的 ID,认证后重新生成
基于 XSS 的窃取或操作恶意脚本读取可访问的令牌,或借受害者的浏览器执行操作防御 XSS、HttpOnly、内容隔离、重新认证
恶意扩展或恶意软件终端上的软件读取浏览器数据或控制请求可信软件、最小权限、清理终端
令牌预测或暴力猜测较弱或较短的标识被猜中使用密码学随机的高熵令牌并做检测

OWASP 把泄露、截获、预测、暴力猜测和固定归为可导致冒充的途径。方式各异,单一防御无法全部覆盖。

会话劫持与密码泄露有什么区别?

项目密码或通行密钥凭据会话令牌
用途在认证时证明身份代表认证之后的已登录状态
典型有效期长期有效,直到被修改或撤销通常受空闲超时和绝对超时限制
复用方式可以创建新会话直接复用现有会话
最佳即时响应修改或恢复凭据,检查验证因素撤销会话和令牌,再保护凭据

若其他控制没拦住,被盗密码能让攻击者重新登录。被盗会话令牌则可跳过登录,因为服务看到的是已建立的会话。这也解释了 MFA 为何能阻止基于密码的新登录,却不会自动让 MFA 通过后被盗的令牌失效。

两者也可能重叠:恶意软件可能同时窃取保存的凭据和浏览器令牌,攻击者也可能先用密码建立新会话再保住令牌。因此按证据处置:令牌风险就撤销活跃会话,凭据风险就更换已暴露的验证方式,两者都可能被收集时还要检查终端。

会话劫持等于中间人攻击或 XSS 吗?

不等于。会话劫持是一个结果:他人的会话被未经授权地使用。中间人攻击、XSS 漏洞、恶意扩展、不安全的日志或恶意软件感染,都可能是拿到令牌的一条途径。

OWASP 说明,TLS 能防止会话 ID 在网络上被截获,但不能阻止令牌预测、暴力猜测、客户端篡改或固定。HttpOnly 能阻止普通脚本读取 Cookie,但恶意脚本仍可借受害者浏览器发起已认证操作。威胁模型须同时说明令牌从哪里暴露、服务为何接受它。

为什么改密码不一定结束会话劫持?

密码和会话数据库是两套独立状态。有些服务改密码时销毁所有会话;有些只撤销部分、保留受信任设备,或需用户自选“在所有设备上退出”。

OWASP 建议认证和权限变更后重新生成会话 ID、销毁旧 ID,并适时让会话失效。NIST 要求登出和超时使会话绑定失效,但由各服务自行实现。因此应对入侵时,既要改掉已暴露的凭据,也要显式撤销陌生或全部会话。

用户怀疑会话被劫持时怎么办?

  1. 在可信设备上通过官方 App 或手动输入的网址打开服务。
  2. 查看活跃会话、设备、安全事件和近期账号活动。
  3. 撤销陌生会话;无法确定归属时,在所有设备上退出。
  4. 如果密码可能已暴露就修改它;删除陌生的 MFA 和恢复方式。
  5. 删除可疑浏览器扩展,更新设备并扫描恶意软件。
  6. 检查邮件转发、第三方授权、付款变更、文件和消息。
  7. 对敏感服务重新认证;如果没有会话控制功能,联系服务商。

详细恢复顺序见有人登录了我的账号。清除所有 Cookie 可能让你在本机退出,但不一定能撤销服务器或其他设备上被复制的令牌。

服务应怎样防止会话劫持?

服务需要纵深防御:

  • 生成不可预测、熵足够高的会话标识。
  • 只通过预定机制接收标识,通常是安全 Cookie。
  • 整个会话都使用 HTTPS,并设置 Secure、HttpOnly 和合适的 SameSite 属性。
  • 登录和权限变更后重新生成标识。
  • 采用空闲超时、绝对超时和基于风险的过期。
  • 提供可见的设备和会话历史,以及可靠的“全部撤销”控制。
  • 对高风险变更和付款要求重新认证。
  • 检测令牌复用、客户端突变、不可能的行为和异常账号操作,但不要把 IP 位置当作完美的身份证明。
  • 防止 XSS,不让敏感令牌进入 URL、浏览历史、日志和不安全的存储。

NIST 要求会话密钥走受保护通道、登出即失效并设时限,并建议勿用不安全的浏览器存储。OWASP 补充了 Cookie、续期、过期、异常检测和防固定等实用控制。

风险信号应触发相称的控制,而非自动断定身份。新 IP 可能来自出行、移动运营商或 VPN;同一令牌同时出现在互不兼容的客户端,随后又有恢复或付款变更,才是更有力的证据。好的系统会保留足够事件历史,让用户和支持团队能撤销访问而无需暴露令牌本身。


总结

  • 会话劫持滥用的是已认证状态,不一定涉及密码。
  • 令牌可能被截获、泄露、预测、固定,或从终端被盗。
  • 网络加密只能应对部分令牌窃取途径。
  • 用户在改掉已暴露凭据的同时,还要撤销会话。
  • 服务必须保护会话从创建到失效的整个生命周期。

常见问题

不知道密码也能劫持会话吗?

能。如果攻击者持有有效的活跃令牌,服务可能把请求视为已认证。在该会话期间,密码可能根本不会再被出示。

MFA 能防止会话劫持吗?

MFA 保护的是认证环节,让新登录更难。它不会自动保护在 MFA 通过之后被盗的令牌,所以会话的存储、传输、过期和撤销依然重要。

登出能阻止攻击者吗?

实现正确时,登出应使服务器端的相应会话失效。只在一台本地设备登出可能不会撤销其他会话,请使用账号的会话管理或“在所有设备上退出”功能。

清除 Cookie 会撤销被盗令牌吗?

它会删除本机浏览器的 Cookie,可能让这个浏览器退出登录。但被复制的令牌可能在别处继续有效,直到服务让它失效或过期。

什么是会话固定?

会话固定是指攻击者让受害者使用一个攻击者已知的会话标识,然后等受害者完成认证。登录时重新生成标识,就能切断这种绑定。

HTTPS 能阻止全部会话劫持吗?

不能。正确使用时,HTTPS 能在传输中保护令牌不被网络截获,但不能阻止 XSS、恶意扩展、恶意软件、令牌预测、不安全日志或有缺陷的撤销机制。

所有会话 Cookie 都危险吗?

不是。Cookie 是维持会话的标准方式。风险取决于标识如何生成、限定范围、传输、存储、过期和失效。

怎样判断会话可能被劫持?

留意陌生的活跃会话、不是你做的操作、被改动的安全设置,或无法解释的同时使用。仅凭地点不能下结论;请通过官方账号活动确认,并撤销无法确定的会话。


免责声明:本文提供一般网络安全教育,不构成法律、取证或专业事件响应建议。

来源

  1. OWASP Cheat Sheet Series — Session Management Cheat Sheet — https://cheatsheetseries.owasp.org/cheatsheets/Session_Management_Cheat_Sheet.html
  2. NIST SP 800-63B-4 — Session Management and Session Bindings — https://pages.nist.gov/800-63-4/sp800-63b.html

Sources checked 2026 年 10 月 4 日。


延伸阅读:

开启 3 天免费试用

注册即可免费体验全部高级功能。

*仅限新用户;每位用户只能获得一次试用。

什么是会话劫持?令牌被盗后为何能绕过正常账号登录流程 | AethoVPN