mcpField
P
pentest-api-deep

pentest-api-deep

github.com/jd-opensource安全31585 次安装28 周前更新
代码仓库

关于 pentest-api-deep

pentest-api-deep 是面向授权安全测试人员的 API 渗透测试技能,覆盖 OWASP API Security Top 10(2023)的多类风险,并提供发现、测试和验证工作流。

主要功能

  1. 01API 端点与隐藏参数发现
  2. 02BFLA 与批量赋值测试
  3. 03速率限制和资源消耗测试
  4. 04过度数据暴露检查
  5. 05SSRF 与上游 API 注入测试
  6. 06API 版本和废弃端点检查

适用场景

  1. 01依据 OpenAPI、GraphQL 或 gRPC 信息枚举接口
  2. 02比较不同权限账户的 API 响应
  3. 03检查 API 的速率限制和复杂度控制
  4. 04测试旧版本 API 与上游数据处理风险

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/jd-opensource/joysafeter --skill pentest-api-deep

安装后在 Claude Code 中输入/pentest-api-deep确认已加载。

附带文件references/tools.mdreferences/workflows.md

详细介绍

Pentest API Deep

用途

执行专门的 API 漏洞测试,覆盖基础 BOLA/GraphQL 测试之外的内容。针对 OWASP API Security Top 10(2023)中的功能级授权失效(BFLA)、批量赋值、速率限制、过度数据暴露和不安全消费问题。

前提条件

授权要求
  • 书面授权,并明确包含 API 测试范围
  • API 文档(OpenAPI/Swagger 规范、GraphQL schema)(如有)
  • 多个权限级别的测试账号(用户、管理员、服务账号)
  • 了解速率限制——与目标所有者确认可接受的请求量
环境设置
  • 用于手动探索 API 的 Postman 或 Insomnia
  • 带有 API 专用扩展的 Burp Suite
  • 用于 schema 可视化的 GraphQL Voyager
  • 用于测试 gRPC 服务的 grpcurl

核心工作流

  1. API 发现:通过 OpenAPI/Swagger 规范、GraphQL 内省、gRPC 反射和流量分析枚举端点。使用 Kiterunner 发现未记录的端点。
  2. BFLA 测试:以普通用户身份访问仅限管理员使用的 API 功能。切换 HTTP 方法(GET→DELETE)。测试不同于对象级授权(BOLA)的功能级授权缺口。
  3. 批量赋值:在 POST/PUT 请求中发送额外字段(role、isAdmin、balance)。检查响应对象是否泄露内部字段(WSTG-INPV-20)。
  4. 速率限制与资源:测试缺失的速率限制、GraphQL 深度/复杂度滥用、分页滥用,以及通过 API 输入触发的正则表达式 DoS。
  5. 过度数据暴露:比较不同权限级别下的 API 响应。识别响应中返回但 UI 未显示的字段。测试详细的错误响应。
  6. 不安全消费:通过上游 API 调用实施 SSRF,通过可信但已受污染的 API 响应数据实施注入。
  7. API 版本管理:测试控制较弱的旧版 API、版本标头操纵和已弃用端点访问。

OWASP API Security Top 10(2023)覆盖范围

类别测试重点状态
API1 对象级授权失效通过 API 参数进行 IDOR 测试✅
API2 身份验证失效令牌/密钥弱点✅
API3 对象属性级授权失效批量赋值、过度数据✅
API4 无限制资源消耗速率限制、复杂度✅
API5 功能级授权失效BFLA、方法切换✅
API6 对敏感业务流的无限制访问自动化滥用✅
API7 服务器端请求伪造API 触发的 SSRF✅
API8 安全配置错误CORS、标头、版本管理✅
API9 不当资产管理影子 API、已弃用版本✅
API10 不安全地消费第三方 API上游注入✅

工具类别

类别工具用途
API 发现Kiterunner、Swagger UI、GraphQL Voyager端点枚举
参数发现Arjun、x8、ParamSpider隐藏参数检测
模糊测试ffuf、Burp Intruder、自定义脚本批量赋值、BFLA
GraphQLgraphql-cop、InQL、BatchQLGraphQL 专用攻击
gRPCgrpcurl、grpc-toolsgRPC 反射与测试
速率测试自定义 aiohttp 脚本、Turbo Intruder速率限制验证

参考资料

  • references/tools.md - 工具函数签名和参数
  • references/workflows.md - 攻击模式定义和测试向量

评论

支持 Markdown