Agent Skills
返回列表
🤖

API授权与BOLA漏洞测试

AI Agent 更新于 2026.08.29

将以下提示词粘贴到你的 AI 对话框中:

请根据 https://skillhub.cn/install/skillhub.md,安装 @user_3c6cb52e/api-authorization-and-bola-jsgw。

技能介绍

面临的问题

当 API 暴露对象 ID、嵌套资源或角色敏感功能时,越权访问(BOLA/BFLA)和批量赋值往往是最常见且危害极大的漏洞。开发者常在单一请求路径上实现鉴权,却忽略了同级端点、嵌套资源、备用 HTTP 方法或隐藏字段的管控,导致攻击者可以通过篡改 ID 或注入隐藏参数获取未授权数据。

技能的工作方式

该技能提供了一套结构化的测试循环,帮助安全工程师系统性地排查上述风险:

  1. 双账户准备:创建 Account A(正常用户)和 Account B(越权测试用户)。
  2. 流程捕获:以 Account A 身份执行 create、read、update 和 delete 操作,记录完整请求。
  3. Token 重放:提取 Account B 的凭证,重放上述请求,验证是否存在 BOLA(越权对象访问)或 BFLA(越权函数访问)。
  4. 面扩展探测:

- 测试同级和嵌套端点(如 /api/v1/orders/123 与 /api/v1/users/1/invoices/9)。
- 尝试 PUT、PATCH、DELETE 等备用动词。
- 注入隐藏的 JSON 字段(如 role、tier、org)以检测批量赋值漏洞。

适用边界与注意事项

在测试过程中,需特别留意容易被忽视的隐蔽 payload 载体。对象 ID 可能隐藏在 HTTP header、Cookie 或 GraphQL 参数中。此外,即使父级资源通过了鉴权检查,子资源也可能处于未授权状态;部分接口在复用相同路由时,备用方法的鉴权逻辑可能比主方法更弱。

请注意,该技能聚焦于应用层的授权逻辑测试。若需排查 JWT 令牌本身的签名与声明滥用、GraphQL 隐藏参数发现,或非 API 环境下的传统 IDOR 漏洞,请结合相关的 JWT 或 GraphQL 专项技能进行深入测试。

使用场景

  • 为 API 设计基于角色的访问控制(RBAC),需要验证普通用户与管理员权限的隔离是否彻底
  • 编写自动化渗透测试脚本,针对对象 ID 遍历和嵌套资源 IDOR 生成测试用例
  • 在 CI/CD 流水线中加入安全检测环节,验证 PUT/PATCH/DELETE 方法对同一路由的鉴权一致性
  • 审计 API 文档,检查 create 请求是否遗漏了对隐藏字段(role, tier 等)的写入限制

适合人员

  • 后端工程师:需要确保 API 对象级授权逻辑覆盖同级和嵌套端点,防止越权漏洞
  • 安全测试工程师:负责对 API 进行 BOLA/BFLA 渗透测试,需要标准化的双账户测试流程
  • DevSecOps 工程师:需要在 CI 流水线中集成自动化安全检测,验证 HTTP 方法滥用和批量赋值风险
  • API 平台开发者:正在构建多租户或 RBAC 系统,需要验证隐藏字段过滤和嵌套资源权限继承