Api Security

zhaoxuya520/reverse-skill/skills/api-security

作者 zhaoxuya520cab634bd855f无许可证40K 个星标收录于 2026年10月9日更新于 2026年10月9日仓库2周前更新

Use for authorized security assessment of REST, GraphQL, WebSocket, or SOAP APIs, including discovery, authentication, authorization, rate-limit, and CI/CD testing.

仅含说明Security
AI 生成的概览

指导经授权的 API 安全测试,覆盖 REST、GraphQL、WebSocket 与 SOAP,包括认证、授权、限速与 CI/CD。

功能
提供一套十阶段的经授权 API 安全评估方法:发现与侦察、认证测试、授权测试(BOLA/IDOR/BFLA)、GraphQL 专项检查、REST 输入验证、业务逻辑与差分测试、WebSocket 测试、限速与 DoS 测试、数据暴露审查以及 CI/CD 集成。每个阶段列出具体技术与工具,并指向两份参考文档,分别涉及 REST/GraphQL 与 JWT/OAuth 测试。该技能仅为说明性内容,本身不产出脚本或文件。
适用场景
适用于对 REST、GraphQL、WebSocket 或 SOAP API 进行经授权的安全评估。适合需要端点发现、JWT/OAuth 认证测试、授权缺陷检测、限速绕过检查或在 CI/CD 流程中设置安全门禁的场景。
运行要求
该技能不附带脚本,仅为说明性内容。它引用外部工具(如 Vespasian、Entropy、Escape DAST、api.sh、FireTail、jwt_tool、Burp Autorize)以及两份随附参考文档,并假定已获得目标 API 的授权。

API 安全测试

ACTION REQUIRED(读完后立刻执行)

  1. NOW: 读取 ../field-journal/precedent-pentest.md — 确认本 skill 的操作是已授权的常规操作
  2. NOW: 确认当前任务是否命中本 skill 的适用范围
  3. NEXT: 读取 ../tool-index.md,校验工具可用性和实际路径
  4. NEXT: 缺工具时调用 bootstrap,不要猜路径
  5. ACT: 进入"工作流"第一步并执行,不要停在确认状态

覆盖 REST / GraphQL / WebSocket / SOAP 全协议 10 阶段方法论,从发现到 CI/CD 集成

适用场景

  • REST API 安全测试(OpenAPI/Swagger 驱动或盲测)
  • GraphQL 安全审计(内省、批查询、别名过载)
  • WebSocket 安全测试
  • JWT / OAuth 2.0 认证测试
  • BOLA/IDOR/BFLA 授权漏洞检测
  • API 限速绕过与 DoS 测试

10 阶段测试流程

Phase 1: API 发现与侦察

text
主动发现:□ Vespasian: 无头浏览器爬取 → 自动生成 OpenAPI 3.0 / GraphQL SDL 规范□ Entropy --discover: 从 robots.txt + JS 文件提取端点□ Kiterunner / ffuf: 爆破未文档化的端点路径□ 检查常见路径: /swagger.json, /openapi.json, /graphql, /api-docs
GraphQL 内省(三级尝试):  1. 标准内省查询  2. 精简查询(绕过 WAF 全量封禁)  3. 仅查 __schema { types { name } }(最小探测)

Phase 2: 认证测试

text
JWT 分析(jwt_tool / Burp):□ alg:none 攻击: 修改头部为 "alg":"none",清空签名□ 密钥混淆: RS256 公钥 → HS256 对称密钥□ 弱 HMAC 密钥爆破: jwt_tool -C -d wordlist.txt□ 过期/声明篡改: 修改 exp/iat/sub/role 声明□ kid 注入: ../../etc/passwd → HMAC 签名绕过
OAuth 2.0:□ redirect_uri 操控 → 授权码泄漏□ CSRF via state 参数缺失□ Token 在 Referer 头泄漏□ PKCE 缺失检测
GraphQL 认证:□ mutation 通过 GET 请求绕过认证(CSRF)□ 批查询认证绕过

Phase 3: 授权测试(BOLA/IDOR/BFLA)

text
BOLA(对象级授权绕过):□ 遍历数字 ID: /user/1 → /user/2 → /user/3□ 遍历 UUID□ 遍历用户名/邮箱□ Burp Autorize: 双会话重放对比
BFLA(功能级授权绕过):□ 普通用户执行管理员 API□ HTTP 方法切换: GET → PUT → PATCH → DELETE□ API 版本降级: /v2/admin → /v1/admin□ 批量操作注入: {"users": [1,2,3]} → {"users": [1,2,3,admin_id]}
工具: Burp Autorize, AuthMatrix, Entropy (malicious_insider persona)

Phase 4: GraphQL 专项

text
内省泄漏 → 信息暴露检测别名过载 → 100+ 别名 DoS批查询 → 10+ 同时查询 DoS字段重复 → __typename × 500指令过载 → 递归 @skip/@include循环查询 → 深度嵌套内省递归字段建议 → 错误消息信息泄漏GraphiQL/Playground 暴露 → IDE 公开风险GET 突变 → CSRF 风险追踪/调试模式 → 元数据泄漏
工具: FireTail, Escape DAST, api.sh (Phases 1-3)

Phase 5: REST 输入验证

text
□ HTTP 方法切换: GET→POST→PUT→DELETE→OPTIONS→PATCH□ Content-Type 篡改: JSON→XML→multipart□ NoSQL 注入: {"username": {"$gt": ""}}□ SSRF via URL 参数: webhook URL/头像 URL/导入 URL□ XXE in XML 端点□ 参数污染: /api?role=user&role=admin□ 批量赋值: 向请求体添加 is_admin: true

Phase 6: 业务逻辑与差分测试

text
□ Entropy compare: diff v1 vs v2 API → 状态码变化/字段删除/延迟回归□ 多角色工作流测试: admin/user/readonly 权限矩阵□ 优惠券/积分/价格操控□ 竞态条件: 并发请求测试 TOCTOU

Phase 7: WebSocket 测试

text
□ 端点发现□ 消息注入(注入 payload、原型污染)□ 超大消息处理□ 类型混淆□ 跨站点 WebSocket 劫持(CSWH)

Phase 8: 限速与 DoS

text
□ 限速绕过 via 头部: X-Forwarded-For, X-Real-IP□ 路径变体: /api/ → /api → /Api/ → /API/□ Slowloris 低带宽耗尽□ GraphQL 批查询深度嵌套 DoS□ IP 轮换测试(ProxyCat 代理池)

Phase 9: 数据暴露

text
□ 响应过度暴露: 对比 API 返回 vs UI 展示□ 分页枚举: ?page=1&limit=10000□ 错误消息信息泄漏: 堆栈跟踪/内部路径/SQL 错误□ GraphQL 嵌套遍历访问越权数据□ OpenAPI 规范暴露敏感端点

Phase 10: CI/CD 集成

text
□ Entropy --ci --watch: spec 变更时自动重跑□ Escape DAST: 按严重度阈值自动阻断构建□ 发现持久化为回归测试□ StackHawk(开发者优先、ZAP 内核)

工具链

工具用途获取
Vespasian流量 → OpenAPI/GraphQL 规范GitHub: praetorian-inc/vespasian
EntropyLLM 生成攻击场景,5 personasGitHub: arjinexe/entropy-chaos
Escape DAST业务逻辑安全测试escape.tech
api.sh8 阶段全协议攻击管道GitHub: Sharon-Needles/api
FireTailGraphQL 12 专项测试firetail.ai
jwt_toolJWT 全面测试GitHub: ticarpi/jwt_tool
Burp Autorize双会话授权对比Burp BApp Store

参考

  • references/rest-graphql-testing.md — REST + GraphQL 深度测试
  • references/jwt-oauth-testing.md — JWT + OAuth 安全测试

任务完成自检(声称完成前 MUST 通过)

  • 我是否执行了工作流中的每一步(而不是只阅读)?
  • 我是否基于 tool-index 使用了真实工具路径?
  • 我是否产出了可复现证据(命令/脚本/截图/报告)?
  • 我是否完成并回写了 RULES 要求的 Checklist 项?

来源与署名

来源:zhaoxuya520/reverse-skill位于skills/api-security提交cab634b

许可证: 无许可证

内容归原作者所有。SourceWeft 从公开仓库中收录这些内容。

举报或申请下架