Skip to content
Security
Skill

/api-authz-test

Test an API's authorization — BOLA (object-level), BFLA (function-level), and BOPLA (property-level / mass assignment) — to confirm each request is authorized for the caller. Use to validate the top OWASP API risks on an authorized target.

From plugin
awesome-claude-security
11111 skills17 agents13 commands1 MCP

Claude Code

$ npx -y skills add jassics/awesome-claude-security --skill api-authz-test --agent claude-code

SKILL.md

api-authz-test.SKILL.md
name: api-authz-test
description: >-
  Test an API's authorization — BOLA (object-level), BFLA (function-level), and
  BOPLA (property-level / mass assignment) — to confirm each request is authorized
  for the caller. Use to validate the top OWASP API risks on an authorized target.

Goal

Evidence on whether the API enforces authorization server-side for every object, function, and property against the authenticated caller — or whether a user can reach data/operations/fields they shouldn't.

Prerequisites

  • Authorization to test, ideally two users at different privilege/tenant levels and

an admin, with identifiable objects.

Test cases

1. **BOLA (object level)** — as User A, swap object identifiers (path/query/body, IDs, UUIDs, GraphQL node IDs) to read or modify User B's objects. 2. **BFLA (function level)** — call admin/privileged operations as a normal user; try alternate methods/verbs, hidden endpoints, and GraphQL mutations not exposed to your role. 3. **BOPLA / mass assignment** — add privileged properties to a write (e.g. `"role":"admin"`, `"isVerified":true`) and check if they're accepted; inspect responses for over-exposed fields. 4. **Tenant isolation** — cross-tenant object access where multi-tenant.

Steps

1. Map objects, operations, roles, and the property model (use the schema/spec). 2. Run cases as the lower-privilege identity; capture request+response evidence. 3. Record per case: enforced / leaked / accepted, with evidence (redact secrets). 4. Identify the gap: ID trusted from request, no per-object/function/property authz, writable fields not allow-listed.

Output

A results table: case · object/function/property · result · evidence · remediation (deny-by-default authz per object/function/property tied to identity; field allow-listing). Confirmed issues → `security-reporting:finding` (high+ for cross-user/tenant access).

Notes

BOLA + BFLA are the #1 and #5 API risks and cause most API breaches. Authorization must be enforced server-side per request — never infer it from the client-supplied ID, role, or tenant. Same class as web `access-control-test`.

Read more
@jassics
Ships withawesome-claude-security

A Claude Code plugin marketplace for the full cybersecurity & GenAI-security lifecycle — from recon and threat modeling to detection engineering, GRC, and CISO-level strategy. A pentester knows which OWASP test bends a broken-access-control endpoint.

11111 skills17 agents1 MCP
Get the whole plugin

Stars on GitHub

Momentum

stars in total
11
Star history of jassics/awesome-claude-security on GitHub, a chart by star-history.com

Other skills on awesome-claude-security.

More skills from other plugins.

api-security

api-security

Use for authorized security assessment of REST, GraphQL, WebSocket, or SOAP APIs, including discovery, authentication,…

@zhaoxuya520@zhaoxuya520Install Skill
nemoclaw-user-guide

nemoclaw-user-guide

Find official NemoClaw documentation for installation, configuration, operation, or troubleshooting. Also handles requested docs…

nemoclaw12d23k
@nvidia@nvidiaInstall Skill

Questions about api-authz-test.

Which coding agents can use api-authz-test?
api-authz-test installs in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Windsurf with the skills CLI, using each agent's flag shown on this page. Flowy's auto-invocation, which fires a skill when your prompt matches, runs in Claude Code only.