API侦察与文档
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @user_3c6cb52e/api-recon-and-docs-78yc
技能介绍
问题:API 表面远比文档大
在对一个 REST、移动端或 GraphQL API 做安全评估时,最大的盲区往往不是那些写在文档里的端点,而是藏在文档背后的那部分表面。未文档化的参数、历史版本仍在服务的旧路由、移动端专用的接口路径、GraphQL schema 里多出来的可选字段,这些共同构成了真正的攻击面。如果只盯着公开文档,等于只看到了冰山一角。
工作方式
这个技能的核心思路是"先枚举、再提取、后路由"。
侦察阶段分三条线推进:
- 客户端挖掘:抓取前端 JavaScript bundle,从路由表、API 调用封装、环境配置里提取真实端点和参数名。
- 文档与 schema 路径遍历:扫描常见的文档暴露路径(如
/docs、/api-docs、/swagger.json、/openapi.json)以及前端源码中的 schema 定义。 - 版本与产品漂移:对比不同版本间的端点差异,寻找仍在运行但已被标记废弃的旧接口。
提取阶段关注文档和 schema 中的高价值线索:
- 可选字段和未文档化参数,尤其是涉及
additionalProperties: true的宽松 schema - 仅管理员可见的请求示例,暗示了角色和权限差异
- 与过滤、排序、ID、角色或租户绑定的参数名,直接指向潜在的 BOLA 或 IDOR 风险
路由阶段根据发现的结果指向下一步分析:
- 大量对象 ID → 继续做授权和 BOLA 分析
- 存在 JWT、OAuth、角色声明 → 转向认证和 JWT 滥用检查
- GraphQL 或隐藏字段 → 进入 GraphQL 和隐藏参数挖掘
- 认证边界强但业务流可疑 → 转向业务逻辑漏洞
适用边界
这个技能只负责侦察和文档提取,不包含漏洞验证。它输出的是候选面和线索列表,后续的利用和确认需要配合其他技能完成。此外,它依赖客户端可达的信息和公开文档,如果 API 完全无前端暴露且文档完全封闭,侦察效果会打折扣。对于非 REST/GraphQL 协议(如 gRPC、WebSocket 自定义协议),需要额外适配。
使用场景
- 对REST API做安全评估时,需要枚举所有可达端点、文档路径和隐藏参数,构建完整攻击面清单。
- 移动端后端存在多个API版本共存,需定位仍在运行的旧版本路由和废弃端点,评估数据泄露风险。
- GraphQL API文档不完整,需从前端JS bundle和schema中提取隐藏字段、可选参数和角色差异,补充接口清单。
- 排查API未文档化参数和宽松schema导致的输入校验漏洞,需系统性提取文档外字段。
适合人员
- 安全工程师:需要为API攻击面梳理提供端点枚举、文档提取和版本漂移检测工具。
- 后端开发者:需要对比新旧版本API差异,排查废弃端点残留和未文档化参数。
- 移动端开发者:需要从客户端JS中逆向API调用路径,补全文档缺失的参数定义。
- 渗透测试人员:需要快速定位GraphQL隐藏字段和可选参数,缩小手工测试范围。