mcpField
A
api-security

api-security

github.com/hardw00t安全10644 次安装28 周前更新
代码仓库

关于 api-security

api-security 是面向 API 渗透测试人员的技能,按评估阶段组织测试流程、方法文档和载荷参考。它涵盖 REST、GraphQL、gRPC 与 WebSocket API,并提供授权矩阵指导和结构化发现项格式。

主要功能

  1. 01按阶段编排工作流与参考资料
  2. 02支持 REST、GraphQL、gRPC 和 WebSocket 测试
  3. 03提供 BOLA/BFLA 授权矩阵指导
  4. 04测试 JWT 与身份验证
  5. 05索引载荷并定义发现项格式

适用场景

  1. 01依据 OWASP API Top 10(2023)评估 API
  2. 02跨多个用户角色测试授权
  3. 03分析 OpenAPI 或 GraphQL 架构
  4. 04模糊测试端点、参数或架构

安装

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

$npx skills add https://github.com/hardw00t/ai-security-arsenal --skill api-security

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

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

examples/
bola_finding.md
graphql_bola_finding.md
jwt_none_finding.md
methodology/
api_recon.md
bola_bfla_matrix.md
bounty_patterns_2024_2026.md
payloads/
bfla_privilege.txt
bola_idor.txt
graphql_queries.txt
injection.txt
jwt_attacks.txt
mass_assignment.txt
references/
owasp_api_top10_2023.md
tools.md
schemas/
finding.json
workflows/
graphql_introspection_triage.md
graphql_testing.md
grpc_testing.md
jwt_attack_chooser.md
rest_testing.md
websocket_testing.md

详细介绍

API 安全测试

用于 API 渗透测试的轻量路由器。请使用索引章节加载当前阶段所需的具体工作流、载荷文件或方法文档。 请勿预先加载所有内容。

适用场景

  • 对 REST、GraphQL、gRPC 或 WebSocket API 进行渗透测试。
  • 评估 OWASP API Top 10(2023)的覆盖情况。
  • 分析 BOLA / BFLA / BOPLA 授权矩阵。
  • 测试 JWT / OAuth / API 密钥身份验证。
  • 对端点、参数或架构进行模糊测试。
  • 解析并攻击 OpenAPI / Swagger / GraphQL 架构。
  • 测试速率限制 / 资源消耗。

触发短语

“对这个 API 进行渗透测试”、“测试 REST API”、“测试 GraphQL 安全性”、“检查是否存在 BOLA/IDOR”、“分析 OpenAPI 规范”、“测试 API 身份验证”、“JWT 攻击”、 “对 API 端点进行模糊测试”、“GraphQL 内省”。

不适用场景

  • 基于浏览器 / DOM 的测试(XSS、CSP、点击劫持、在浏览器中呈现的客户端身份验证 流程)-> 使用 dast-automation。
  • 审查 API 源代码以查找代码层面的注入 / 授权漏洞 -> 使用 sast-orchestration。
  • 逆向分析移动客户端,从 APK/IPA 中恢复 API 端点 -> 先使用 mobile-security,然后带着恢复出的规范返回此处。
  • 云服务提供商 IAM / API 网关配置审计(而非 API 本身)-> 使用 cloud-security。

决策树

Is there a schema (OpenAPI / GraphQL SDL / .proto)?
  yes -> parse it first, feed endpoints.txt to fuzzers
  no  -> methodology/api_recon.md

What protocol?
  REST / JSON over HTTP -> workflows/rest_testing.md
  GraphQL               -> workflows/graphql_introspection_triage.md
                           then workflows/graphql_testing.md
  gRPC                  -> workflows/grpc_testing.md
  WebSocket             -> workflows/websocket_testing.md

Is a JWT in use?
  yes -> workflows/jwt_attack_chooser.md  (alg-none -> key-conf -> kid -> brute)

Primary finding target?
  Authorization bugs  -> methodology/bola_bfla_matrix.md  (HIGHEST yield)
  Misconfig / inventory -> nuclei + references/owasp_api_top10_2023.md (API8/API9)
  Injection / SSRF    -> payloads/injection.txt

并行处理提示

并发运行(I/O 相互独立):

  • 发现规范:swagger.json、openapi.json、.well-known/openapi.json、 v1/api-docs、v2/api-docs。
  • 发现端点:可在同一主机上运行 ffuf、kiterunner 和 katana。
  • 身份验证枚举:并行收集每种角色(未认证 / 用户 / 管理员 / 服务)的令牌—— 每种都属于独立的登录流程。
  • Nuclei exposures/、vulnerabilities/、misconfiguration/ 模板包。

按顺序执行(依赖状态):

  • 必须先完成规范解析,端点驱动的模糊测试工具才能使用解析结果。
  • 必须等各角色扫描全部完成后,才能对授权矩阵进行差异分析。
  • JWT 攻击链步骤有顺序要求(参见 workflows/jwt_attack_chooser.md)。

子 Agent 委派

构建 BOLA/BFLA 矩阵时,按每种身份验证上下文启动一个子 Agent:

  • Agent U — 未认证
  • Agent A — 用户角色(账户 A)
  • Agent B — 用户角色(账户 B,跨用户)
  • Agent X — 管理员角色(如可用)
  • Agent S — 服务 / 机器账户(如适用)

每个 Agent 使用自己的令牌遍历完整端点列表,并返回 {endpoint, method, status, body_hash, leaks_cross_user}。主 Agent 对 这五组结果进行差异分析。这是在 API 渗透测试中提升并行效率的最大单项优化。

对于 GraphQL,还应委派:一个子 Agent 枚举所有 Query 字段,另一个枚举所有 Mutation 字段,还有一个映射带 ID 的类型以便进行 BOLA 测试。

推理预算

  • 扩展思考 — 授权矩阵分析、JWT 攻击路径选择、基于 GraphQL 架构的攻击规划、业务 逻辑流程建模(API6)。
  • 最少思考 / 直接执行 — 载荷模糊测试、运行 nuclei、ffuf 暴力破解、 grpcurl 调用、JWT 解码、规范解析。

多模态使用提示

  • 当文本抓取失败时,Swagger / GraphiQL / Postman 界面的截图有助于加快规范恢复。
  • 对于 JWT 和 GraphQL 证据,优先使用文本内容块(evidence.jwt_header、 evidence.graphql_query),而非截图。

结构化输出

每项发现:schemas/finding.json。API 专用的必填字段: endpoint、http_method、api_type(rest/graphql/grpc/websocket)、 auth_context、owasp_api_id(例如 API1:2023)。

工作流索引

工作流加载时机
workflows/rest_testing.mdREST/JSON API、完整的 7 阶段操作手册
workflows/graphql_testing.mdGraphQL 测试、内省后的分类处理
workflows/graphql_introspection_triage.md决定如何获取 GraphQL 架构
workflows/grpc_testing.mdgRPC 服务(通过反射或基于 .proto)
workflows/websocket_testing.mdWebSocket / socket.io / GraphQL 订阅
workflows/jwt_attack_chooser.md存在 JWT — 按顺序执行攻击链

方法论索引

文档加载时机
methodology/api_recon.md攻击前:建立端点和身份验证清单
methodology/bola_bfla_matrix.md授权测试 — 价值最高的阶段
methodology/bounty_patterns_2024_2026.md2023 年后的公开漏洞赏金 TTP(OAuth ATO、JWT request_uri、刷新令牌持久性、大规模赋值、ORM 数据泄露)

载荷索引

文件用途
payloads/bola_idor.txtBOLA/IDOR 的对象 ID 替换值
payloads/bfla_privilege.txt管理员路径、方法覆盖、角色伪造标头
payloads/graphql_queries.txt内省、批处理、别名 DoS、变更 BOLA
payloads/jwt_attacks.txt标头 / 声明篡改配方
payloads/mass_assignment.txtPOST/PUT/PATCH 的过度提交键
payloads/injection.txtSQLi、NoSQLi、cmdi、SSRF、XXE、SSTI、原型污染

参考资料索引

文件内容
references/owasp_api_top10_2023.mdOWASP API Top 10(2023)表格及指引
references/tools.md工具安装 / 版本参考

示例索引

文件内容
examples/bola_finding.mdREST BOLA — 已填写的发现 JSON
examples/jwt_none_finding.mdJWT alg=none — 已填写的发现 JSON
examples/graphql_bola_finding.mdGraphQL 变更 BOLA — 发现 JSON

工具

工具用途安装
Burp SuiteHTTP 拦截https://portswigger.net/burp
ffufHTTP 模糊测试go install github.com/ffuf/ffuf/v2@latest
nuclei模板扫描go install github.com/projectdiscovery/nuclei/v3/cmd/nuclei@latest
jwt_toolJWT 攻击命令行pip install jwt_tool
graphql-copGraphQL 配置错误扫描pip install graphql-cop
grpcurlgRPC 命令行go install github.com/fullstorydev/grpcurl/cmd/grpcurl@latest
arjun参数发现pip install arjun
kiterunnerAPI 路由发现https://github.com/assetnote/kiterunner/releases

完整列表:references/tools.md。

上次验证

2026-04。工具最低版本:nuclei >= 3.3、ffuf >= 2.1、grpcurl >= 1.9、 jwt_tool >= 2.2、graphql-cop >= 1.13。

评论

支持 Markdown