用途
该技能用于在漏洞赏金狩猎和渗透测试中,对 REST、SOAP 和 GraphQL 类型的 API 进行系统性安全测试,覆盖漏洞发现、认证绕过、IDOR 利用以及 API 特有的攻击向量。
授权与使用前提
技能明确标注「仅限授权使用」,仅可用于教育目的或经授权的安全评估。使用前必须获得系统所有者明确、书面的许可,滥用属于违法行为并被严格禁止。
技能设置了强制确认关卡:在执行任何探测、利用、更改、持久化、数据提取或尝试凭据访问目标的命令之前,需要用户说明确切的目标 URL、IP、账户或资源,确认书面授权与允许范围,展示确切命令并解释预期效果,并在当前对话中等待明确确认。若未获得确认,技能保持只读状态,仅提供防御性指导,并建议优先使用沙箱、一次性虚拟机或受控实验环境。
输入与前置条件
- Burp Suite 或类似代理工具
- API 字典(SecLists、api_wordlist)
- 对 REST/GraphQL/SOAP 协议的理解
- 用于编写脚本的 Python
- 目标 API 端点及文档(如有)
主要能力
技能按工作流组织,包含以下环节:
-
API 侦察:识别 API 类型并枚举端点,例如检查 Swagger/OpenAPI 文档路径(/swagger.json、/openapi.json、/api-docs、/v1/api-docs、/swagger-ui.html),使用 Kiterunner 进行 API 发现,从 Swagger 提取路径。
-
认证测试:测试不同登录路径(/api/mobile/login、/api/v3/login、/api/magic_link、/api/admin/login),检查认证端点的速率限制,并分别测试移动端与 Web API。
-
IDOR 测试:将 IDOR 描述为最常见的 API 漏洞,给出基础测试方式(如 GET /api/users/1234 改为 1235)、基于邮箱的 ID 尝试数字、/me/orders 与 /user/654321/orders 对比,以及多种绕过技巧(数组包裹、JSON 包裹、重复发送 ID、通配符注入、参数污染)。
-
注入测试:涵盖 JSON 中的 SQL 注入、命令注入(Ruby on Rails、Linux)、XXE 注入、通过 API 的 SSRF、.NET Path.Combine 路径遍历。
-
方法测试:测试所有 HTTP 方法(GET/POST/PUT/DELETE/PATCH),切换 Content-Type(application/json 与 application/xml)。
-
GraphQL 专项测试:内省查询获取后端 schema、GraphQL IDOR、SQL/NoSQL 注入、通过批处理绕过速率限制、嵌套查询 DoS、GraphQL XSS,并列出 GraphCrawler、graphw00f、clairvoyance、InQL、GraphQLmap 等工具。
-
端点绕过技术:针对 403/401 响应,尝试添加 .json、?、/、??、%20、%09、#、&details、..;/ 等变体。
-
输出利用:PDF 导出攻击(LFI、SSRF、端口扫描、IP 泄露)、通过 limit 参数造成 DoS。
技能还提供常见 API 漏洞清单(API 暴露、缓存配置错误、令牌泄露、JWT 弱点、IDOR/BOLA、未记录端点、版本差异、速率限制、竞态条件、XXE、内容类型问题、HTTP 方法篡改)、快速参考表、工具参考表(含各工具 GitHub 或站点 URL)、约束条件、示例与故障排查表。
使用方式
技能以工作流步骤和命令示例的形式呈现,用户需在获得授权并完成强制确认后,按侦察、认证、IDOR、注入、方法、GraphQL、绕过、输出利用的顺序执行测试。技能强调必须分别测试移动端、Web 端和开发者 API,检查所有 API 版本(/v1、/v2、/v3),验证已认证与未认证访问;不得假设不同 API 版本具有相同的安全控制,不得跳过未记录端点的测试,不得忽略速率限制检查;建议添加 X-Requested-With: XMLHttpRequest 头模拟前端,检查 archive.org 中的历史 API 端点,并对敏感操作测试竞态条件。
适用场景
适用于经授权的漏洞赏金狩猎、渗透测试、防御性验证或受控教学环境中的 API 安全评估。
限制
技能仅限授权使用,未获得明确书面授权时不得执行任何主动测试命令。技能内容为测试技术与流程参考,不保证发现漏洞或测试效果。部分工具的具体版本、平台支持与收费情况暂未提供。