agentic-awesome-skills 实战:REST + GraphQL API 深度安全测试清单与自动化工具链
agentic-awesome-skills 实战REST GraphQL API 深度安全测试清单与自动化工具链【免费下载链接】agentic-awesome-skillsAAS Core is the local, agent-first control plane for complete catalog discovery, agent-owned selection, stack validation, and planning, backed by 2,600 agentic skills. Includes CLI, local MCP, catalog, plugins, and Workbench.项目地址: https://gitcode.com/GitHub_Trending/an/agentic-awesome-skills本指南面向已在授权范围内开展 API 安全评估的测试者系统梳理 GraphQL 端点的内省探测、DoS 攻击向量与认证绕过手法REST 端点的 HTTP 方法操控、参数注入与 SSRF 测试要点并给出 Vespasian、Entropy、api.sh 组成的自动化工具链用法。读完本文你将获得一套可直接落地执行的 REST GraphQL 深度测试清单并理解其与 api-security skill 十阶段测试流程的对应关系。背景与定位在 api-security skill 中references/rest-graphql-testing.md被明确定位为“REST GraphQL 深度测试”的专项参考文档与references/jwt-oauth-testing.mdJWT OAuth 安全测试共同构成该 skill 的两大攻击面参考。skill 的描述将其适用场景归纳为REST API 安全测试OpenAPI/Swagger 驱动或盲测、GraphQL 安全审计内省、批查询、别名过载、WebSocket 安全测试、JWT/OAuth 2.0 认证测试、BOLA/IDOR/BFLA 授权漏洞检测以及 API 限速绕过与 DoS 测试。需要特别强调的是该 skill 带有risk: offensive标注并在文件头声明“AUTHORIZED USE ONLY”——仅限教育目的或获得系统所有者书面授权的安全评估禁止未授权使用。后续所有命令与 payload 都必须在授权范围内执行。GraphQL 安全测试完整清单GraphQL 端点与 REST 最大的差异在于单一入口通常为/graphql、强类型 Schema 以及内省introspection机制。以下清单覆盖内省探测、DoS 向量与授权三个维度。内省探测三级降级内省是 GraphQL 客户端赖以发现 Schema 的标准机制但生产环境若未关闭攻击者可直接读取全部类型、字段与参数定义。针对 WAF 或网关对内省查询的封禁文档给出了三级降级探测策略# Level 1 — 标准内省 { __schema { queryType { name } mutationType { name } types { name fields { name type { name } } } } } # Level 2 — 精简内省绕过 WAF { __schema { types { name } } } # Level 3 — 最小探测 { __type(name: Query) { name } }Level 1完整内省返回所有类型的字段与类型关系信息量最大Level 2仅枚举类型名称体积小、特征弱可用于绕过对完整内省查询的规则匹配Level 3只查单个类型的名称是特征最弱的最小探测常用于确认端点是否为 GraphQL 及内省是否完全关闭。这一“三级尝试”策略同样出现在 skill 的 Phase 1API 发现与侦察中标准内省查询 → 精简查询绕过 WAF 全量封禁→ 仅查__schema { types { name } }最小探测说明该参考文档是 Phase 1 侦察动作的落地方案。DoS 攻击向量GraphQL 允许在一次请求中组合大量字段、别名与指令若不加以深度与数量限制极易构造低带宽、高消耗的拒绝服务请求。文档列出四类典型向量# 别名过载 query { a1: __typename a2: __typename ... a100: __typename } # 批查询过载 [query1, query2, ..., query10] # 循环查询 query { __schema { types { fields { type { fields { type { fields { name } } } } } } } } # 指令过载 query { __typename skip(if: false) include(if: true) ... }别名过载通过a1: ... a100:等别名重复请求同一字段放大单次查询的解析成本skill Phase 4 中记为“100 别名 DoS”批查询过载GraphQL 支持一次提交多个查询组成的数组批量查询可成倍放大服务端计算量skill Phase 4 中记为“10 同时查询 DoS”循环查询对内省 Schema 做深度嵌套递归让解析器陷入指数级展开skill Phase 4 还补充了“字段重复 →__typename × 500”的变体指令过载堆叠skip/include指令制造冗余条件求值skill Phase 4 中记为“递归skip/include”。结合 skill Phase 8限速与 DoS这些向量还可以与限速绕过手法组合使用伪造X-Forwarded-For、X-Real-IP头尝试/api/、/api、/Api/、/API/等路径变体以及通过代理池做 IP 轮换。授权测试GraphQL 端点常见的认证/授权缺陷集中在两点mutation 经 GET 触发的 CSRF 风险以及批查询绕过认证。# GET 突变CSRF GET /graphql?querymutation{deleteUser(id:1)} # 批查询绕过认证 [ { query: query { me { id } } }, { query: mutation { deleteUser(id: 2) } } ]GET 突变CSRF若服务端允许通过 GET 携带query参数执行 mutation攻击者即可构造跨站请求触发状态变更。skill Phase 2认证测试与 Phase 4GraphQL 专项均将“GET 突变”列为风险项批查询绕过认证部分实现仅对数组第一个查询做鉴权后续查询可能被绕过skill Phase 2 明确列出“批查询认证绕过”作为 GraphQL 认证测试项。REST API 深度测试方法操控矩阵HTTP 方法切换GET → POST → PUT → PATCH → DELETE → OPTIONS是发现授权与校验缺陷的高效手段——服务端常对部分方法漏做鉴权或参数校验。文档给出了一个可直接套用的测试矩阵端点GETPOSTPUTPATCHDELETEOPTIONS/users✓ 可访问测试越权创建测试批量覆盖测试字段注入测试级联删除信息泄漏/users/me基准—测试自我提权测试字段追加测试自我删除—/users集合端点GET 作为正常访问基线POST 测试能否越权创建资源PUT 测试批量覆盖是否绕过字段校验PATCH 测试字段注入如追加roleDELETE 测试级联删除是否越权OPTIONS 检查Allow头与方法暴露造成的信息泄漏/users/me对象端点以 GET 为基准PUT 测试自我提权修改自身角色、PATCH 测试字段追加、DELETE 测试自我删除的授权约束。这与 skill Phase 5REST 输入验证的“HTTP 方法切换GET→POST→PUT→DELETE→OPTIONS→PATCH”以及 Phase 3 中 BFLA功能级授权绕过的“HTTP 方法切换”完全对应还可在授权测试中叠加 Burp Autorize 双会话重放对比或使用 Entropy 的malicious_insider人格自动生成越权用例。参数注入REST 请求体与查询参数的注入测试覆盖 NoSQL 注入、批量赋值、参数污染与 JSON 数组注入四类// NoSQL 注入 {username: {$gt: }, password: {$ne: }} // 批量赋值 {email: userexample.com, role: admin, isAdmin: true} // 参数污染 GET /api/users?roleuserroleadmin // JSON 数组注入 {ids: [1, 2, 3]} → {ids: [1 UNION SELECT ...]}NoSQL 注入向 MongoDB 等文档数据库传递{$gt: }、{$ne: }等操作符对象可使查询条件恒真绕过认证skill Phase 5 同款示例批量赋值Mass Assignment在请求体中追加role、isAdmin等服务端未过滤字段试图覆盖权限属性skill Phase 3 还给出批量操作注入变体{users: [1,2,3]} → {users: [1,2,3,admin_id]}参数污染HTTP Parameter Pollution同名参数重复出现时不同框架会取第一个、最后一个或拼接成数组可能导致校验与业务取值不一致skill Phase 5 明确列出/api?roleuserroleadminJSON 数组注入将本应为数值数组的ids替换为字符串探测是否直接拼接进 SQL/查询语句。SSRF via API当 API 接受 URL 类参数并代表客户端发起请求时即可测试服务器端请求伪造SSRF。文档给出常见的高风险参数命名与三类经典内网目标常见 SSRF 参数: webhook_url, callback_url, avatar_url, import_url, redirect_uri, file_url, proxy_url, image_url 测试: http://169.254.169.254/latest/meta-data/ (AWS) http://metadata.google.internal/ (GCP) file:///etc/passwd参数覆盖 webhook 回调、头像导入、文件导入、重定向、代理等所有“服务端代取 URL”场景skill Phase 5 的“SSRF via URL 参数webhook URL/头像 URL/导入 URL”与之对应目标地址优先测试云元数据服务AWS169.254.169.254、GCPmetadata.google.internal以获取临时凭据以及file://协议读取本地文件测试时可结合 Content-Type 篡改JSON→XML→multipart与 XML 端点上的 XXE 测试skill Phase 5 同章节列出。自动化工具链Vespasian流量驱动的规范生成文档将 Vespasian 描述为“流量驱动规范生成”工具通过无头浏览器爬取或导入 Burp/HAR 流量自动产出 OpenAPI 3.0 与 GraphQL SDL 规范为后续自动化测试提供输入。其三个核心命令# 从无头浏览器爬取 vespasian crawl --url https://target.com --depth 3 # 从 Burp/HAR 导入 vespasian import --file traffic.har # 导出 OpenAPI 3.0 GraphQL SDL vespasian export --format openapi3 --output api-spec.yamlcrawl从入口 URL 按深度递归爬取自动收集交互并映射端点import把已有抓包流量HAR转化为结构化规范适合无头爬虫无法覆盖的登录后场景export将结果导出为标准规范文件供 Entropy、Escape DAST 等下游工具消费。在 skill 的 Phase 1 中Vespasian 与 Entropy--discover从 robots.txt JS 文件提取端点、Kiterunner/ffuf 路径爆破、常见路径检查/swagger.json、/openapi.json、/graphql、/api-docs共同构成主动发现手段产出的规范文件正是“OpenAPI/Swagger 驱动”测试模式的输入。EntropyLLM 攻击生成Entropy 被描述为基于 LLM 的攻击场景生成器能够依据 spec 自动生成并执行测试。文档给出两种运行模式# 基于 spec 的自动测试 entropy --spec api-spec.yaml --live --persona all # CI 模式 entropy --spec api-spec.yaml --ci --watch其核心是五种并发攻击人格persona每种人格聚焦一类攻击行为malicious_insiderIDOR / 批量赋值 / 权限提升——对应 skill Phase 3 的 BOLA/IDOR/BFLA 授权测试bot_swarm限速绕过 / DoS / 自动化滥用——对应 Phase 8 限速与 DoSpenetration_tester注入 / 认证绕过——对应 Phase 5 输入验证与 Phase 2 认证测试impatient_consumer竞态条件 / 错误处理——对应 Phase 6 业务逻辑中的 TOCTOU 竞态测试confused_user意外输入 / 边界测试——补充输入校验边界的盲点。--ci --watch模式对应 skill Phase 10CI/CD 集成spec 变更时自动重跑测试把安全发现持续集成进开发流水线。api.sh8 阶段全协议攻击管道api.sh 以单脚本形式覆盖从 GraphQL 到 SOAP 的全协议攻击阶段文档给出八个阶段的调用方式# Phase 1-3: GraphQL 侦察 → 利用 → 爆破 ./api.sh graphql-recon https://target.com/graphql ./api.sh graphql-exploit https://target.com/graphql # Phase 4: REST 滥用 ./api.sh rest-abuse https://target.com/api # Phase 5: WebSocket ./api.sh ws-test wss://target.com/ws # Phase 6: SOAP/XXE ./api.sh soap-xxe https://target.com/soap # Phase 7: 限速绕过 ./api.sh rate-bypass https://target.com/api # Phase 8: Schema 收割 ./api.sh schema-harvest https://target.com前三个阶段依次为 GraphQL 侦察内省探测、利用exploit 已知攻击向量、爆破暴力枚举第 4 阶段聚焦 REST 端点滥用方法操控、注入第 5 阶段覆盖 WebSocket对应 skill Phase 7 的端点发现、消息注入、跨站点 WebSocket 劫持 CSWH 等第 6 阶段针对 SOAP 端点做 XXE 测试第 7 阶段对应 skill Phase 8 的限速绕过伪造头、路径变体、IP 轮换第 8 阶段 Schema 收割用于批量收集端点与数据结构。在 skill Phase 4GraphQL 专项中api.sh 被标注为 Phases 1-3 的默认工具与 FireTail、Escape DAST 并列。测试流程对照参考文档在 skill 中的位置将本文清单与 api-security SKILL.md 的十阶段流程对照可以清晰看到该参考文档覆盖的阶段参考文档章节对应 skill 阶段GraphQL 内省三级探测Phase 1 API 发现与侦察GET 突变 / 批查询绕过认证Phase 2 认证测试、Phase 4 GraphQL 专项GraphQL DoS 四类向量Phase 4 GraphQL 专项、Phase 8 限速与 DoSREST 方法操控矩阵Phase 3 BFLA、Phase 5 输入验证参数注入NoSQL/批量赋值/污染/数组Phase 5 REST 输入验证SSRF via APIPhase 5 REST 输入验证Vespasian / Entropy / api.shPhase 1 发现、Phase 6 差分、Phase 10 CI/CD 集成此外skill 还包含本文未展开的相关参考jwt-oauth-testing.md 覆盖 JWT 算法混淆、声明篡改与 OAuth 2.0 各授权流程的测试与本文形成认证维度的互补。仓库根目录下 plugins/agentic-awesome-skills/skills/api-security/SKILL.md 与 其 rest-graphql-testing.md 为同一 skill 的镜像版本内容一致可作为对照阅读。授权边界与安全须知该 skill 全文明确要求所有探测、利用、变更、持久化、数据提取或凭据访问类命令都必须先经过四步强制确认门Mandatory confirmation gate要求用户明确目标 URL、IP、账号或资源要求用户确认书面授权与允许范围展示将要执行的确切命令并说明预期影响在当前会话中获得明确确认。未获得确认时应保持只读并仅提供防御性建议优先使用沙箱、一次性虚拟机或受控实验环境。本文所有命令与 payload 均为授权测试场景下的技术清单切勿在未授权目标上执行。参考来源api-security skill 主文档含 10 阶段流程、工具链表格与授权声明rest-graphql-testing.md本文主题文档jwt-oauth-testing.mdJWT/OAuth 参考镜像版本plugins/agentic-awesome-skills/skills/api-security/SKILL.md 及 其 references 目录本文所有命令、payload 与工具用法均直接整理自上述仓库文档工具来源OWASP API Top 10、Praetorian Vespasian、Entropy、FireTail GraphQL以文档末尾声明为准。【免费下载链接】agentic-awesome-skillsAAS Core is the local, agent-first control plane for complete catalog discovery, agent-owned selection, stack validation, and planning, backed by 2,600 agentic skills. Includes CLI, local MCP, catalog, plugins, and Workbench.项目地址: https://gitcode.com/GitHub_Trending/an/agentic-awesome-skills创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考