mcpField
A
api-security

api-security

github.com/transilienceai安全600209 次安装13 周前更新
代码仓库

关于 api-security

api-security 是用于测试 REST、GraphQL、WebSocket 和集成 LLM 的 API 的安全技能。它结合协议专项检查,以及针对大型 API 集合和不同角色的可恢复、基于 fixture 的授权测试。

主要功能

  1. 01测试 REST、GraphQL、WebSocket 和 Web-LLM
  2. 02发现端点并梳理认证机制
  3. 03从 API 集合生成 fixture
  4. 04按角色重放授权测试
  5. 05记录证据并支持断点续跑

适用场景

  1. 01检查 API 端点的访问控制缺陷
  2. 02对大量 API 操作重放授权检查
  3. 03评估 Web-LLM API 的注入与数据暴露风险
  4. 04保存请求和响应证据

安装

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

$npx skills add https://github.com/transilienceai/communitytools --skill api-security

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

包含的文件

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

reference/
api-security-principles.md
graphql-resources.md
INDEX.md
owasp-api-top10-coverage.md
reference/scenarios/graphql/
auth-bypass-and-injection.md
csrf-and-content-type.md
dos-and-batching.md
endpoint-discovery.md
idor-and-mass-enumeration.md
introspection-and-bypass.md
rate-limit-bypass.md
schema-reconstruction.md
reference/scenarios/mcp/
inspector-stdio-rce.md
reference/scenarios/rest/
api-recon-and-discovery.md
cognito-unauth-and-srp.md
content-type-confusion-xxe.md
cors-misconfiguration.md
exposed-documentation.md
https-downgrade-redirect-hsts.md
mass-assignment.md
mattermost-slash-command-dialog-hijack.md
odata-deep-authz.md
options-method-enumeration.md
owasp-bola-bopla.md
sspp-query-string.md
sspp-rest-path.md
unauth-existence-oracle.md
unauthenticated-webhook-oracle.md
verbose-error-schema-disclosure.md
waf-bypass-techniques.md

详细介绍

API 安全

针对 REST、GraphQL、WebSocket 和集成 LLM 的 API 测试安全漏洞。

技术

类型关键攻击向量
GraphQL内省、批处理攻击、嵌套查询 DoS、字段建议
REST APIBOLA/IDOR、批量赋值、速率限制、绕过身份验证、版本控制
WebSocket跨站劫持、消息操纵、身份验证缺陷
Web-LLM通过 API 进行提示词注入、权限过大、数据外泄

工作流

  1. 发现 API 端点和文档(Swagger、GraphQL 架构)
  2. 梳理身份验证和授权机制
  3. 使用适当技术按 API 类型进行测试
  4. 验证数据泄露和访问控制缺陷
  5. 使用 HTTP 请求/响应日志记录证据

大规模 API(离线语料库 / fixture 驱动)

对于大型或离线 API 面(2000+ 路径的 Swagger、Postman 语料库、HAR 捕获),不要在每次测试中手动构建覆盖机制。应以确定性方式驱动测试:

  1. 导入语料库 → 生成每个端点的 fixture: python3 tools/fixture_ingest.py <openapi|postman|har> -o fixtures.json 会将每项操作规范化为请求模板(方法、已填入路径参数的 URL、采样请求体、用于类 ID 路径参数的 object_ref、安全要求),并剥除内置身份验证信息(由测试框架注入令牌)。这样便可将大型(数千项操作)OpenAPI/Postman 语料库转化为可续跑的矩阵,而不是未经测试的一堆内容。
  2. 获取每个角色的会话: 通过 authenticated-session-acquisition(MFA/OTP/SRP → 可复用令牌)将会话存入测试框架的令牌存储。
  3. 重放每个角色的授权矩阵: python3 tools/auth_replay_harness.py --requests fixtures.json --tokens tokens.json [--proxy <vantage>] 会以每个角色(以及跨租户身份)重放每个端点;如果某个角色对其不应有权访问的对象/操作获得了 authorized,则标记 BOLA/BFLA,并为每个(端点 × 角色)记录一个 evidence_id。对于允许列表中的 API,通过已配置的 vantage 路由出口流量。
  4. 特定协议的授权测试: 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、内容类型混淆)
  • reference/websockets*.md - WebSocket 漏洞测试
  • reference/web-llm*.md - Web-LLM 攻击技术和实验

评论

支持 Markdown