About api-security
api-security is a security testing skill for REST, GraphQL, WebSocket, and LLM-integrated APIs. It combines protocol-specific checks with fixture-driven, resumable authorization testing across large API corpora and user roles.
Key features
- 01REST, GraphQL, WebSocket, and Web-LLM testing
- 02Endpoint discovery and authentication mapping
- 03Fixture generation from API corpora
- 04Role-based authorization replay
- 05Evidence logs and resumable test runs
Use cases
- 01Testing API endpoints for access-control flaws
- 02Replaying authorization checks across many API operations
- 03Assessing Web-LLM APIs for injection and data exposure
- 04Capturing request and response evidence
Install
Copy the command and run it in a terminal.
npx skills add https:/ / github.com/ transilienceai/ communitytools --skill api-securityAfter installing, type/api-securityin Claude Code to confirm it loaded.
Bundled files
References and scripts installed along with 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.mdDetails
From the project READMEAPI Security
Test API endpoints for security vulnerabilities across REST, GraphQL, WebSocket, and LLM-integrated APIs.
Techniques
| Type | Key Vectors |
|---|---|
| GraphQL | Introspection, batching attacks, nested query DoS, field suggestion |
| REST API | BOLA/IDOR, mass assignment, rate limiting, auth bypass, versioning |
| WebSocket | Cross-site hijacking, message manipulation, auth flaws |
| Web-LLM | Prompt injection via API, excessive agency, data exfiltration |
Workflow
- Discover API endpoints and documentation (Swagger, GraphQL schema)
- Map authentication and authorization mechanisms
- Test per API type using appropriate techniques
- Validate data exposure and access control flaws
- Capture evidence with HTTP request/response logs
API at scale (offline corpus / fixture-driven)
For a large or offline API surface — a 2000+ path Swagger, a Postman corpus, a HAR capture — do NOT hand-build the coverage machinery per engagement. Drive it deterministically:
- Ingest the corpus → per-endpoint fixtures:
python3 tools/fixture_ingest.py <openapi|postman|har> -o fixtures.jsonnormalizes every operation into a request template (method, url with path params filled, sampled body,object_reffor id-like path params, security requirement) and STRIPS baked-in auth (the harness injects tokens). This is what turns a large (thousands-of-operations) OpenAPI/Postman corpus into a resumable matrix instead of an untested pile. - Acquire per-role sessions: via
authenticated-session-acquisition(MFA/OTP/SRP → reusable tokens) into the harness's token store. - Replay the per-role authz matrix:
python3 tools/auth_replay_harness.py --requests fixtures.json --tokens tokens.json [--proxy <vantage>]replays every endpoint under every role (and cross-tenant), flags BOLA/BFLA where a role gotauthorizedon an object/action it should not, and logs anevidence_idper (endpoint × role). Egress-route via the provisioned vantage for allowlisted APIs. - Protocol-specific authz: OData (
odata-deep-authz.md), Cognito (cognito-unauth-and-srp.md), authenticated WebSocket (authenticated-per-role-authz.md).
The batch is resumable (checkpoint the harness results) so flapping auth never zeroes the run — the recurring at-scale gap. Run the FULL matrix so a clean result is an evidenced negative, not an untested surface.
Reference
reference/graphql*.md- GraphQL attack techniques and labsreference/scenarios/rest/*.md- REST API security testing (BOLA/BOPLA, mass assignment, SSPP, content-type confusion)scenarios/rest/odata-deep-authz.md- OData$metadataenum +$filter/$orderby/$expandcross-tenant BOLA & injectionscenarios/rest/cognito-unauth-and-srp.md- Cognito UNSIGNED unauthenticated posture (self-signup/enumeration) + SRP authenticated session
reference/websockets*.md- WebSocket vulnerability testingscenarios/websocket/authenticated-per-role-authz.md- authenticated per-role relay: BOLA/BFLA/channel-authz over the socket
reference/web-llm*.md- Web-LLM attack techniques and labs