关于 api-security
api-security 是用于测试 REST、GraphQL、WebSocket 和集成 LLM 的 API 的安全技能。它结合协议专项检查,以及针对大型 API 集合和不同角色的可恢复、基于 fixture 的授权测试。
主要功能
- 01测试 REST、GraphQL、WebSocket 和 Web-LLM
- 02发现端点并梳理认证机制
- 03从 API 集合生成 fixture
- 04按角色重放授权测试
- 05记录证据并支持断点续跑
适用场景
- 01检查 API 端点的访问控制缺陷
- 02对大量 API 操作重放授权检查
- 03评估 Web-LLM API 的注入与数据暴露风险
- 04保存请求和响应证据
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ transilienceai/ communitytools --skill api-security安装后在 Claude Code 中输入/api-security确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
reference/api-security-principles.mdgraphql-resources.mdINDEX.mdowasp-api-top10-coverage.mdreference/scenarios/graphql/auth-bypass-and-injection.mdcsrf-and-content-type.mddos-and-batching.mdendpoint-discovery.mdidor-and-mass-enumeration.mdintrospection-and-bypass.mdrate-limit-bypass.mdschema-reconstruction.mdreference/scenarios/mcp/inspector-stdio-rce.mdreference/scenarios/rest/api-recon-and-discovery.mdcognito-unauth-and-srp.mdcontent-type-confusion-xxe.mdcors-misconfiguration.mdexposed-documentation.mdhttps-downgrade-redirect-hsts.mdmass-assignment.mdmattermost-slash-command-dialog-hijack.mdodata-deep-authz.mdoptions-method-enumeration.mdowasp-bola-bopla.mdsspp-query-string.mdsspp-rest-path.mdunauth-existence-oracle.mdunauthenticated-webhook-oracle.mdverbose-error-schema-disclosure.mdwaf-bypass-techniques.md详细介绍
API 安全
针对 REST、GraphQL、WebSocket 和集成 LLM 的 API 测试安全漏洞。
技术
| 类型 | 关键攻击向量 |
|---|---|
| GraphQL | 内省、批处理攻击、嵌套查询 DoS、字段建议 |
| REST API | BOLA/IDOR、批量赋值、速率限制、绕过身份验证、版本控制 |
| WebSocket | 跨站劫持、消息操纵、身份验证缺陷 |
| Web-LLM | 通过 API 进行提示词注入、权限过大、数据外泄 |
工作流
- 发现 API 端点和文档(Swagger、GraphQL 架构)
- 梳理身份验证和授权机制
- 使用适当技术按 API 类型进行测试
- 验证数据泄露和访问控制缺陷
- 使用 HTTP 请求/响应日志记录证据
大规模 API(离线语料库 / fixture 驱动)
对于大型或离线 API 面(2000+ 路径的 Swagger、Postman 语料库、HAR 捕获),不要在每次测试中手动构建覆盖机制。应以确定性方式驱动测试:
- 导入语料库 → 生成每个端点的 fixture:
python3 tools/fixture_ingest.py <openapi|postman|har> -o fixtures.json会将每项操作规范化为请求模板(方法、已填入路径参数的 URL、采样请求体、用于类 ID 路径参数的object_ref、安全要求),并剥除内置身份验证信息(由测试框架注入令牌)。这样便可将大型(数千项操作)OpenAPI/Postman 语料库转化为可续跑的矩阵,而不是未经测试的一堆内容。 - 获取每个角色的会话: 通过
authenticated-session-acquisition(MFA/OTP/SRP → 可复用令牌)将会话存入测试框架的令牌存储。 - 重放每个角色的授权矩阵:
python3 tools/auth_replay_harness.py --requests fixtures.json --tokens tokens.json [--proxy <vantage>]会以每个角色(以及跨租户身份)重放每个端点;如果某个角色对其不应有权访问的对象/操作获得了authorized,则标记 BOLA/BFLA,并为每个(端点 × 角色)记录一个evidence_id。对于允许列表中的 API,通过已配置的 vantage 路由出口流量。 - 特定协议的授权测试: OData(
odata-deep-authz.md)、Cognito(cognito-unauth-and-srp.md)、已通过身份验证的 WebSocket(authenticated-per-role-authz.md)。
批处理支持续跑(对测试框架结果创建检查点),因此身份验证波动不会让整次运行归零——这正是大规模测试中反复出现的缺口。运行完整矩阵,确保干净的结果是有证据支持的否定结论,而非未经测试的区域。
参考资料
reference/graphql*.md- GraphQL 攻击技术和实验reference/scenarios/rest/*.md- REST API 安全测试(BOLA/BOPLA、批量赋值、SSPP、内容类型混淆)scenarios/rest/odata-deep-authz.md- OData$metadata枚举 +$filter/$orderby/$expand跨租户 BOLA 与注入scenarios/rest/cognito-unauth-and-srp.md- Cognito 未签名的未认证状态(自行注册/枚举)+ SRP 已认证会话
reference/websockets*.md- WebSocket 漏洞测试scenarios/websocket/authenticated-per-role-authz.md- 按角色进行已认证的中继:通过套接字测试 BOLA/BFLA/通道授权
reference/web-llm*.md- Web-LLM 攻击技术和实验
评论
支持 Markdown