| name | eni-redteam-api-detail-pack |
| description | [DOCUMENTATION ONLY] [仅文档] 授权范围内 API 安全测试的领域路由与边界手册,覆盖 BOLA/IDOR、认证绕过、批量分配、速率限制缺失与 GraphQL 问题。当任务落入 API 测试领域、需要明确范围、证据、转向或退出标准时加载。 |
API 安全测试纵深手册
文档性质:本手册属于纯文档资源(DOCUMENTATION ONLY / 仅文档),提供方法框架与检查清单,不捆绑任何可执行脚本。
一、手册职责与领域声明
当前任务归类于 API 安全测试 领域,测试范围限定在 API 漏洞面:水平/垂直越权(BOLA/IDOR)、批量分配、认证绕过、速率限制缺失、GraphQL 缺陷等。
本手册只为代理解决三件事:划清测试边界、受阻时给出转向选项、收尾时卡住证据质量。它不教授固定攻击步骤,不替代用户授权范围,不把任何推测当作结论。
若 scope、target 或授权边界未明确,任务直接进入 blocked 或 plan-only 状态,不进行真实执行。
二、攻击面地形
API 的攻击面从端点地图开始。对象引用是否经过属主校验决定 BOLA 是否成立;请求体字段是否被无差别绑定决定批量分配是否可行;认证头的解析链路(JWT/Token)决定绕过空间;速率控制是否覆盖每个端点决定枚举成本;GraphQL 的内省与字段解析决定泄露深度。版本化接口(/v1 /v2)与遗留端点往往是最薄的壳。
| 入口 | 典型载体 | 观察方式 |
|---|
| 对象端点 | /api/users/{id} 类路径 | 替换标识符观察响应差异 |
| 批量绑定 | POST/PUT 请求体字段 | 注入特权字段观察落库效果 |
| 认证头 | JWT/API Key/Token | 篡改声明与算法观察受理情况 |
| 文档接口 | OpenAPI/Swagger/Postman 导出 | 未授权可读即泄露端点地图 |
| GraphQL | 内省查询、批量 query | schema 泄露与嵌套查询深度 |
三、变体速览
| 变体 | 触发条件 | 高价值场景 |
|---|
| BOLA/IDOR | 对象引用未校验属主 | 横向读取/修改他人数据 |
| 批量分配 | 请求体字段未过滤 | 注入 is_admin 类字段提权 |
| 认证绕过 | JWT/Token 校验缺陷 | 无凭据访问受保护接口 |
| GraphQL 缺陷 | 内省开放、嵌套未限深 | 拖库、越权聚合查询 |
| 速率缺失 | 端点无限流 | 枚举账户、爆破凭据 |
四、执行纪律与禁区
- 只围绕用户明确提供或授权的目标工作,不超出目标域名、IP、应用或系统边界。
- 不得删除或修改生产数据。
- 证据纪律:不伪造、不夸大、不补写不存在的证据;不在缺少证据时声明任务完成。
- 不把候选风险、公开 CVE 或组件指纹直接等同于可利用漏洞——指纹只是线索,验证才是结论。
- 若 scope、target 或授权边界不明确,进入 blocked 或 plan-only,不进行真实执行。
五、受阻转向
- 接口鉴权严格 → 枚举隐藏端点,尝试低权限越权,检查旧版本 API 是否遗留宽松校验。
- 参数未知 → Fuzz 常见参数名,分析前端 JS 中的请求构造,检查 OpenAPI/Swagger 文档。
- 速率限制生效 → 轮换 Token,降低请求频率,寻找未限流的批量端点。
- GraphQL 内省被禁 → 借助字段建议与错误信息逐步还原 schema。
- 所有入口均不可利用 → 记录已测试端点清单,回退到上级知识库重新选择测试方向。
六、收尾与证据标准
正向退出(有发现)
- 关键结论至少具备 supported 级证据;漏洞成立、影响判断或最终报告必须有 verified 级证据。
- 交付 reproduction 证据包,须包含:完整 HTTP 请求(含 payload);越权或数据泄露成功的证明;漏洞类型标注与影响简述。
- 每份 artifact 能说明来源、目标、时间、观察结果和判断依据。
负向退出(未发现)
- 最少尝试次数:3。
- 记录已测试端点与失败原因,提交 negative report 后回退上级。
- 措辞纪律:只输出"当前证据下未发现",不输出"确认不存在"。