提供在漏洞赏金狩猎和渗透测试中测试REST、SOAP和GraphQL API的综合技术。涵盖漏洞发现、认证绕过、IDOR利用和API特定攻击向量。
技能概述
api-fuzzing-bug-bounty 技能是一个专门用于API安全测试的综合技能,提供在漏洞赏金狩猎和渗透测试中测试REST、SOAP和GraphQL API的完整技术栈。该技能涵盖了从API侦察到漏洞利用的全流程,包括IDOR利用、认证绕过、SQL注入、命令注入、XXE注入、SSRF等常见API漏洞的测试方法。
下载地址:agentic-awesome-skills/skills/api-fuzzing-bug-bounty at main · sickn33/agentic-awesome-skills · GitHub
主要功能
- API侦察: 识别API类型,枚举端点,发现Swagger/OpenAPI文档
- 认证测试: 测试不同登录路径、速率限制、移动端vs Web端API
- IDOR测试: 不安全的直接对象引用漏洞检测和利用
- 注入测试: SQL注入、命令注入、XXE注入、SSRF测试
- GraphQL测试: 内省查询、IDOR、注入、速率限制绕过、DoS
- 端点绕过: 403/401绕过技术
触发条件
在以下情况下应该调用此技能:
- 进行漏洞赏金狩猎中的API安全测试
- 执行渗透测试中的API安全评估
- 测试REST、SOAP或GraphQL API的安全性
- 发现和利用API特定漏洞
- 进行授权的安全评估
使用场景
场景1: API侦察与发现
使用Kiterunner等工具发现API端点,检查Swagger/OpenAPI文档,提取API路径。
场景2: IDOR漏洞利用
测试和利用不安全的直接对象引用漏洞,访问其他用户的数据。
场景3: GraphQL安全测试
执行GraphQL内省查询,测试IDOR、注入、速率限制绕过等漏洞。
场景4: 注入攻击测试
测试SQL注入、命令注入、XXE注入、SSRF等注入类漏洞。
处理过程
1. API侦察
识别API类型并枚举端点:
- 检查Swagger/OpenAPI文档
- 使用Kiterunner进行API发现
- 从Swagger提取路径
2. 认证测试
测试不同的认证路径和机制:
- 测试不同登录路径(/api/mobile/login, /api/v3/login等)
- 检查认证端点的速率限制
- 分别测试移动端和Web端API
3. IDOR测试
测试不安全的直接对象引用:
- 基本IDOR: 修改user_id参数
- IDOR绕过技术: 数组包装、JSON包装、参数污染等
4. 注入测试
测试各种注入漏洞:
- SQL注入: 在JSON中测试SQL注入
- 命令注入: Ruby on Rails、Linux命令注入
- XXE注入: XML解析器利用
- SSRF: 通过API进行服务器端请求伪造
5. 方法测试
测试所有HTTP方法(GET、POST、PUT、DELETE、PATCH),切换内容类型。
6. GraphQL测试
针对GraphQL API的专项测试:
- 内省查询获取架构
- GraphQL IDOR
- SQL/NoSQL注入
- 速率限制绕过(批处理)
- DoS(嵌套查询)
输入要求
使用此技能时,用户需要提供:
- Burp Suite或类似的代理工具
- API词表(SecLists、api_wordlist)
- REST/GraphQL/SOAP协议的理解
- Python脚本编写能力
- 目标API端点和文档(如果可用)
输出说明
技能将提供:
- 识别的API漏洞
- IDOR利用证明
- 认证绕过技术
- SQL注入点
- 未授权数据访问文档
使用示例
示例1: IDOR利用
# 原始请求(自己的数据)
GET /api/v1/invoices/12345
Authorization: Bearer <token># 修改后的请求(其他用户的数据)
GET /api/v1/invoices/12346
Authorization: Bearer <token># 响应揭示其他用户的发票数据
示例2: GraphQL内省
curl -X POST https://target.com/graphql \
-H "Content-Type: application/json" \
-d '{"query":"{__schema{types{name,fields{name}}}}"}'
最佳实践
- 分别测试移动端、Web端和开发者API
- 检查所有API版本(/v1、/v2、/v3)
- 验证认证和未认证访问
- 添加X-Requested-With头模拟前端请求
- 检查archive.org查找历史API端点
- 测试敏感操作的竞态条件
约束条件
必须:
- 分别测试移动端、Web端和开发者API
- 检查所有API版本
- 验证认证和未认证访问
禁止:
- 假设不同API版本有相同的安全控制
- 跳过未记录端点的测试
- 忽略速率限制检查
应该:
- 添加X-Requested-With: XMLHttpRequest头
- 检查archive.org查找历史API端点
- 测试敏感操作的竞态条件
常见API漏洞清单
| 漏洞类型 | 描述 |
|---|---|
| API暴露 | 未保护的端点公开暴露 |
| 配置错误的缓存 | 敏感数据被错误缓存 |
| 令牌暴露 | API密钥/令牌出现在响应或URL中 |
| JWT弱点 | 弱签名、无过期、算法混淆 |
| IDOR/BOLA | 破坏的对象级授权 |
| 未记录端点 | 隐藏的管理/调试端点 |
| 不同版本 | 旧API版本中的安全差距 |
| 速率限制 | 缺失或可绕过的速率限制 |
注意事项
- 仅限授权使用: 仅用于授权的安全评估、防御验证或受控教育环境
- 高风险技能: 该技能具有攻击性风险等级,应谨慎使用
- 法律合规: 确保所有操作符合法律法规和组织政策
- 范围限制: 仅在授权范围内进行测试