关于 api-security
api-security 是面向 API 渗透测试人员的技能,按评估阶段组织测试流程、方法文档和载荷参考。它涵盖 REST、GraphQL、gRPC 与 WebSocket API,并提供授权矩阵指导和结构化发现项格式。
主要功能
- 01按阶段编排工作流与参考资料
- 02支持 REST、GraphQL、gRPC 和 WebSocket 测试
- 03提供 BOLA/BFLA 授权矩阵指导
- 04测试 JWT 与身份验证
- 05索引载荷并定义发现项格式
适用场景
- 01依据 OWASP API Top 10(2023)评估 API
- 02跨多个用户角色测试授权
- 03分析 OpenAPI 或 GraphQL 架构
- 04模糊测试端点、参数或架构
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ hardw00t/ ai-security-arsenal --skill api-security安装后在 Claude Code 中输入/api-security确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
examples/bola_finding.mdgraphql_bola_finding.mdjwt_none_finding.mdmethodology/api_recon.mdbola_bfla_matrix.mdbounty_patterns_2024_2026.mdpayloads/bfla_privilege.txtbola_idor.txtgraphql_queries.txtinjection.txtjwt_attacks.txtmass_assignment.txtreferences/owasp_api_top10_2023.mdtools.mdschemas/finding.jsonworkflows/graphql_introspection_triage.mdgraphql_testing.mdgrpc_testing.mdjwt_attack_chooser.mdrest_testing.mdwebsocket_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.md | REST/JSON API、完整的 7 阶段操作手册 |
workflows/graphql_testing.md | GraphQL 测试、内省后的分类处理 |
workflows/graphql_introspection_triage.md | 决定如何获取 GraphQL 架构 |
workflows/grpc_testing.md | gRPC 服务(通过反射或基于 .proto) |
workflows/websocket_testing.md | WebSocket / socket.io / GraphQL 订阅 |
workflows/jwt_attack_chooser.md | 存在 JWT — 按顺序执行攻击链 |
方法论索引
| 文档 | 加载时机 |
|---|---|
methodology/api_recon.md | 攻击前:建立端点和身份验证清单 |
methodology/bola_bfla_matrix.md | 授权测试 — 价值最高的阶段 |
methodology/bounty_patterns_2024_2026.md | 2023 年后的公开漏洞赏金 TTP(OAuth ATO、JWT request_uri、刷新令牌持久性、大规模赋值、ORM 数据泄露) |
载荷索引
| 文件 | 用途 |
|---|---|
payloads/bola_idor.txt | BOLA/IDOR 的对象 ID 替换值 |
payloads/bfla_privilege.txt | 管理员路径、方法覆盖、角色伪造标头 |
payloads/graphql_queries.txt | 内省、批处理、别名 DoS、变更 BOLA |
payloads/jwt_attacks.txt | 标头 / 声明篡改配方 |
payloads/mass_assignment.txt | POST/PUT/PATCH 的过度提交键 |
payloads/injection.txt | SQLi、NoSQLi、cmdi、SSRF、XXE、SSTI、原型污染 |
参考资料索引
| 文件 | 内容 |
|---|---|
references/owasp_api_top10_2023.md | OWASP API Top 10(2023)表格及指引 |
references/tools.md | 工具安装 / 版本参考 |
示例索引
| 文件 | 内容 |
|---|---|
examples/bola_finding.md | REST BOLA — 已填写的发现 JSON |
examples/jwt_none_finding.md | JWT alg=none — 已填写的发现 JSON |
examples/graphql_bola_finding.md | GraphQL 变更 BOLA — 发现 JSON |
工具
| 工具 | 用途 | 安装 |
|---|---|---|
| Burp Suite | HTTP 拦截 | https://portswigger.net/burp |
| ffuf | HTTP 模糊测试 | go install github.com/ffuf/ffuf/v2@latest |
| nuclei | 模板扫描 | go install github.com/projectdiscovery/nuclei/v3/cmd/nuclei@latest |
| jwt_tool | JWT 攻击命令行 | pip install jwt_tool |
| graphql-cop | GraphQL 配置错误扫描 | pip install graphql-cop |
| grpcurl | gRPC 命令行 | go install github.com/fullstorydev/grpcurl/cmd/grpcurl@latest |
| arjun | 参数发现 | pip install arjun |
| kiterunner | API 路由发现 | 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。