API Fuzzing for Bug Bounty
当用户要求“测试API安全性”、“模糊测试API”、“寻找IDOR漏洞”、“测试REST API”、“测试GraphQL”、“API渗透测试”、“漏洞赏金API测试”,或需要关于API安全评估技术的指导时,应使用此技能。
作者
zebbern
分类
开发工具安装
热度:5
下载并解压到你的 skills 目录
复制命令,发送给 OpenClaw 自动安装:
下载并安装这个技能 https://openskills.cc/api/download?slug=sickn33-skills-api-fuzzing-bug-bounty&locale=zh&source=copy
API Fuzzing for Bug Bounty - API 漏洞挖掘完整指南
技能概述
这是一个专门用于 API 安全测试和漏洞挖掘的技能指南,覆盖 REST、SOAP 和 GraphQL 三种主流 API 协议,提供从端点发现到漏洞利用的完整技术方案,适用于漏洞赏金狩猎和渗透测试项目。
适用场景
在 HackerOne、Bugcrowd 等平台上参与漏洞赏金项目时,使用本技能快速发现目标 API 的 IDOR、认证绕过、注入等高危漏洞,提高漏洞提交成功率。
在授权的安全测试项目中,对企业的 REST API、GraphQL 接口进行全面的安全评估,发现未公开端点、权限绕过、数据泄露等安全问题。
测试移动 App 后端 API 的安全性,区分移动端和 Web 端 API 的安全控制差异,发现移动端特有的认证绕过和越权漏洞。
核心功能
自动化发现 Swagger/OpenAPI 文档、使用 Kiterunner 进行路径爆破、从 JavaScript 文件提取隐藏端点,支持检测不同版本的 API(/v1、/v2、/v3)并识别安全差异。
涵盖 IDOR 绕过技巧(数组包装、参数污染、通配符注入)、SQL/NoSQL 注入检测、命令注入、XXE、SSRF 等经典漏洞,以及通过修改 Content-Type 触发的解析器漏洞。
提供 GraphQL 内省查询、Schema 重构、批量请求绕过限流、嵌套查询 DoS、GraphQL SQL 注入等针对 GraphQL 的专项攻击技术。
常见问题
API 漏洞挖掘从哪里开始?
首先进行 API 侦察,检查是否存在 /swagger.json、/api-docs 等公开文档,然后使用 Kiterunner 等工具进行端点枚举。区分目标 API 类型(REST/GraphQL/SOAP),并收集所有版本(v1/v2/v3)的端点信息。
如何发现隐藏的 API 端点?
除了常规目录爆破,可以检查前端 JavaScript 文件中硬编码的 API 调用,使用 archive.org 查看历史版本的接口,测试常见的 API 路径如 /api/mobile/、/api/v3/ 等,移动端 API 往往与 Web 端不同且安全控制较弱。
IDOR 漏洞有哪些绕过技巧?
基础 IDOR 测试是修改用户 ID 参数(如 /api/users/1234 → /api/users/1235)。绕过技巧包括:将 ID 包装成数组
{"id":[111]}、参数污染 ?id=<victim>&id=<legit>、使用通配符 {"user_id":"*"}、以及将数字 ID 替换为邮箱地址测试类型混淆。GraphQL API 怎么进行安全测试?
首先尝试内省查询获取完整 Schema:
{__schema{types{name,fields{name}}}}。如果内省被禁用,使用 clairvoyance 等工具重构 Schema。然后测试批量查询绕过限流、嵌套查询引发 DoS、以及 GraphQL 特有的注入攻击。API 认证绕过有哪些常用方法?
测试不同的登录端点路径(/api/mobile/login、/api/v3/login),检查是否存在速率限制,测试移动端与 Web 端 API 的认证差异。对于 403/401 响应,尝试添加 .json 后缀、添加空参数、路径绕过(..;/)等技巧。
Burp Suite 能测试 API 吗?
可以。使用 Burp 的 Repeater 手动测试 API 请求,安装 InQL 扩展进行 GraphQL 测试,配合 API Fuzzer 插件进行自动化模糊测试。建议添加
X-Requested-With: XMLHttpRequest 头来模拟前端请求。漏洞赏金中 API 漏洞价值高吗?
API 漏洞在漏洞赏金项目中价值很高,特别是 IDOR(可能导致大规模数据泄露)和认证绕过(完全接管账户)通常能获得高额奖励。GraphQL、移动端 API、未文档化端点的漏洞往往被忽略,更容易发现。
如何检测 API 是否存在 SQL 注入?
在 JSON 参数中注入 SQL 语法:
{"id":"56456 AND 1=1#"} 对比 {"id":"56456 AND 1=2#"},如果响应差异明显则存在漏洞。时间盲注可使用 sleep(15) 检测。注意 API 的 SQL 注入可能在非预期参数中出现。