Skip to content
Vol. 1 · Ed. 2026
CyberGlossary
Entry № 009

账户枚举

审核人Cybersecurity entrepreneur & security researcher

账户枚举 是什么?

账户枚举利用应用响应差异来判断目标系统中存在哪些账户、邮箱或手机号的攻击。


账户枚举利用的是应用在账户存在与不存在时表现的差异——登录、注册或找回密码流程中返回不同的错误信息、响应时间差异,或不同的 HTTP 状态码。攻击者通过尝试大量候选标识符,逐步整理出有效账户列表,随后即可用钓鱼、凭据填充或密码喷洒等手段加以攻击。

该漏洞常见于登录表单("用户不存在" vs "密码错误")、密码重置("已发送邮件" vs "无此账户")和注册流程("邮箱已注册")。它很少是最终目标:枚举是一个侦察步骤,通过消除盲目猜测来强化后续攻击。一个具体的近期案例是 Gitea 中的 CVE-2025-69413(已在 1.25.2 中修复):/api/v1/user 接口对有效与无效用户名返回可区分的响应,使攻击者得以在凭据填充或鱼叉式钓鱼之前先映射出真实账户。

即便错误信息文案统一,时间仍可能泄露信息:只在用户存在时才对所提交密码进行哈希计算的系统,对未知账户的响应会明显更快。因此,稳健的防御需要组合多种手段:通用且完全一致的提示信息;恒定时间的代码路径(始终执行一次虚拟哈希);通用的密码重置与注册通知;按 IP 与按账户的速率限制;在滥用时启用 CAPTCHA;以及用 MFA 削弱后续攻击。OWASP 的 WSTG-IDNT-04 测试用例规范了如何对其进行检测。

flowchart TD
  A[攻击者提交候选标识符] --> B{账户是否存在?}
  B -->|是| C["可区分信号:<br/>密码错误 / 哈希缓慢 / 200"]
  B -->|否| D["可区分信号:<br/>用户不存在 / 快速响应 / 404"]
  C --> E[标记标识符为有效]
  D --> F[标记标识符为无效]
  E --> G[构建有效账户列表]
  G --> H[凭据填充 / 钓鱼 / 密码喷洒]
  C -.统一信息 + 恒定时间.-> I[信号一致:枚举被阻断]
  D -.统一信息 + 恒定时间.-> I

示例

  1. 01

    注册页面显示 "此邮箱已被使用",让攻击者批量收集有效邮箱。

  2. 02

    /login 接口对已知与未知用户名的响应时间不同,被用来构建账户列表。

常见问题

账户枚举 是什么?

利用应用响应差异来判断目标系统中存在哪些账户、邮箱或手机号的攻击。 它属于网络安全的 身份与访问 分类。

账户枚举 是什么意思?

利用应用响应差异来判断目标系统中存在哪些账户、邮箱或手机号的攻击。

如何防御 账户枚举?

针对 账户枚举 的防御通常结合技术控制与运营实践,详见上方完整定义。

账户枚举 还有哪些其他名称?

常见的别称包括: 用户枚举, 标识符枚举。

相关术语