用途:面向 API 越权漏洞的测试手册,聚焦 IDOR(不安全直接对象引用)、BOLA(对象级授权失效)与 BFLA(功能级授权失效)。核心区分是 BOLA 指访问不属于自己的对象数据,BFLA 指低权限用户调用高权限功能(如管理端点)。
主要能力:
- 对象 ID 位置枚举:URL 路径、查询参数、请求体、JSON 字段、请求头(X-User-ID 等)、Cookie、GraphQL 参数、表单字段、WebSocket 消息。
- A-B 测试法:创建 UserA 与 UserB 两个账号,以 A 执行全部操作并记录对象 ID,再用 B 的会话重放 A 的请求,若 B 能读改 A 的数据即确认 BOLA。
- ID 类型分析:顺序整数、UUID v4、时间可预测的 UUID v1、哈希 ID、base64 编码 ID、复合 ID。
- 横向与纵向越权:同权限访问他人数据,或低权限调用管理端点、修改角色字段。
- HTTP 方法升级:GET 受限时测试 POST/PUT/DELETE/PATCH,因授权逻辑常按方法分别实现。
- 参数污染与类型混淆:数组、重复参数、字符串与整数、多 ID 字段。
- 间接 IDOR:父对象校验通过但子资源(附件、评论)未校验归属。
- 批量赋值:注册或更新时注入 role、isAdmin、verified、creditBalance 等隐藏字段。
- 状态机滥用:跳过订单状态或修改他人订单状态。
- ORM 过滤链泄露:Django filter 注入(password__startswith)、Prisma 嵌套 include/select 泄露字段、Rails Ransack 查询谓词逐字符提取。
使用方式:按清单执行——建两个账号、用 Burp 等抓取含对象 ID 的请求、对每个端点测试所有 HTTP 动词与 ID 位置、尝试相邻 ID 与自有账号收集的 UUID、测试子资源与管理端点、检查请求体多余字段、对比响应字段数与文档字段、测试状态字段修改。
适用场景:API 安全测试、漏洞赏金、渗透测试中的授权缺陷排查。
限制:资料未提供具体工具安装命令、收费信息或平台支持范围;实际测试须在获得授权的目标上进行。