All skills
hardw00t avatar

/api-security

@f9bb3b2
by Hardik Mehtahardw00t/ai-security-arsenal104 stars
15

Router skill for API penetration testing across REST, GraphQL, gRPC, and WebSocket. Covers OWASP API Top 10 (2023) including BOLA/BFLA/BOPLA, JWT attack chains, GraphQL introspection abuse, and mass assignment. Invoke when the user asks to pentest an API, analyze OpenAPI/Swagger, test auth/authorization, fuzz endpoints, or find API vulnerabilities.

Use this Skill: https://skilld.dev/gh/hardw00t/ai-security-arsenal/api-security

This session only. Nothing lands on disk.

SKILL.md

โ‰ˆ91 tokens always: the name and description. โ‰ˆ2.2k when used: this file. โ‰ˆ12k more on demand in 15 files.

API Security Testing

Thin router for API penetration testing. Use the index sections to load the specific workflow, payload file, or methodology doc for the phase you're in. Do not pre-load everything.

When to Use

  • Pentesting a REST, GraphQL, gRPC, or WebSocket API.
  • OWASP API Top 10 (2023) coverage assessment.
  • BOLA / BFLA / BOPLA authorization matrix analysis.
  • JWT / OAuth / API-key auth testing.
  • Fuzzing endpoints, parameters, or schemas.
  • Parsing and attacking OpenAPI / Swagger / GraphQL schemas.
  • Rate-limit / resource-consumption testing.

Trigger Phrases

"pentest this API", "test the REST API", "test GraphQL security", "check for BOLA/IDOR", "analyze OpenAPI spec", "test API authentication", "JWT attacks", "fuzz API endpoints", "GraphQL introspection".

When NOT to Use This Skill

  • Browser / DOM-based testing (XSS, CSP, clickjacking, client-side auth flows rendered in a browser) -> use dast-automation.
  • Reviewing API source code for injection/authz bugs at the code level -> use sast-orchestration.
  • Mobile client reversing to recover API endpoints from an APK/IPA -> use mobile-security first, then return here with the recovered spec.
  • Cloud-provider IAM / API-gateway config auditing (not the API itself) -> use cloud-security.

Decision Tree

Is there a schema (OpenAPI / GraphQL SDL / .proto)?
  yes -> parse it first, feed endpoints.txt to fuzzers
  no  -> methodology/api_recon.md

What protocol?
  REST / JSON over HTTP -> workflows/rest_testing.md
  GraphQL               -> workflows/graphql_introspection_triage.md
                           then workflows/graphql_testing.md
  gRPC                  -> workflows/grpc_testing.md
  WebSocket             -> workflows/websocket_testing.md

Is a JWT in use?
  yes -> workflows/jwt_attack_chooser.md  (alg-none -> key-conf -> kid -> brute)

Primary finding target?
  Authorization bugs  -> methodology/bola_bfla_matrix.md  (HIGHEST yield)
  Misconfig / inventory -> nuclei + references/owasp_api_top10_2023.md (API8/API9)
  Injection / SSRF    -> payloads/injection.txt

Parallelism Hints

Run concurrently (independent I/O):

  • Spec discovery: swagger.json, openapi.json, .well-known/openapi.json, v1/api-docs, v2/api-docs.
  • Endpoint discovery: ffuf + kiterunner + katana can run on the same host.
  • Auth enumeration: collect a token per role (unauth / user / admin / service) in parallel โ€” each is a separate login flow.
  • Nuclei exposures/, vulnerabilities/, misconfiguration/ template packs.

Keep sequential (state-dependent):

  • Spec parse must finish before endpoint-driven fuzzers can consume it.
  • Authorization matrix diffing must wait for all per-role scans to complete.
  • JWT attack chain steps are ordered (see workflows/jwt_attack_chooser.md).

Sub-Agent Delegation

Spawn one sub-agent per auth context when building the BOLA/BFLA matrix:

  • Agent U โ€” unauthenticated
  • Agent A โ€” user-role (account A)
  • Agent B โ€” user-role (account B, cross-user)
  • Agent X โ€” admin-role (if available)
  • Agent S โ€” service / machine account (if applicable)

Each agent iterates the full endpoint list with its own token and returns {endpoint, method, status, body_hash, leaks_cross_user}. Main agent diffs the five result sets. This is the single biggest parallelism win in API pentesting.

For GraphQL, also delegate: one sub-agent enumerates all Query fields, another all Mutation fields, another maps ID-bearing types for BOLA targeting.

Reasoning Budget

  • Extended thinking โ€” authorization matrix analysis, JWT attack-path selection, GraphQL schema-driven attack planning, business-logic flow modeling (API6).
  • Minimal / execute directly โ€” payload fuzzing, nuclei runs, ffuf brute force, grpcurl calls, JWT decoding, spec parsing.

Multimodal Hooks

  • Screenshots of Swagger / GraphiQL / Postman UIs can accelerate spec recovery when text scraping fails.
  • For JWT and GraphQL evidence, prefer text blobs (evidence.jwt_header, evidence.graphql_query) over screenshots.

Structured Output

Every finding: schemas/finding.json. Required API-specific fields: endpoint, http_method, api_type (rest/graphql/grpc/websocket), auth_context, owasp_api_id (e.g. API1:2023).

Workflow Index

Workflow When to load
workflows/rest_testing.md REST/JSON APIs, full 7-phase runbook
workflows/graphql_testing.md GraphQL testing, post-introspection triage
workflows/graphql_introspection_triage.md Deciding how to get the GraphQL schema
workflows/grpc_testing.md gRPC services (reflection or .proto-driven)
workflows/websocket_testing.md WebSocket / socket.io / GraphQL subscriptions
workflows/jwt_attack_chooser.md JWTs present โ€” ordered attack chain

Methodology Index

Doc When to load
methodology/api_recon.md Before attack: building endpoint + auth inventory
methodology/bola_bfla_matrix.md Authorization testing โ€” highest-value phase
methodology/bounty_patterns_2024_2026.md Post-2023 public bug-bounty TTPs (OAuth ATO, JWT request_uri, refresh-token persistence, mass-assignment, ORM leakage)

Payloads Index

File Use
payloads/bola_idor.txt Object-ID substitution values for BOLA/IDOR
payloads/bfla_privilege.txt Admin paths, method overrides, role-spoof headers
payloads/graphql_queries.txt Introspection, batching, alias DoS, mutation BOLA
payloads/jwt_attacks.txt Header / claim tampering recipes
payloads/mass_assignment.txt Over-posting keys for POST/PUT/PATCH
payloads/injection.txt SQLi, NoSQLi, cmdi, SSRF, XXE, SSTI, proto pollution

References Index

File Content
references/owasp_api_top10_2023.md OWASP API Top 10 (2023) table + pointers
references/tools.md Tool install / version reference

Examples Index

File Content
examples/bola_finding.md REST BOLA โ€” filled-in finding JSON
examples/jwt_none_finding.md JWT alg=none โ€” filled-in finding JSON
examples/graphql_bola_finding.md GraphQL mutation BOLA โ€” finding JSON

Tools

Tool Purpose Install
Burp Suite HTTP intercept https://portswigger.net/burp
ffuf HTTP fuzzer go install github.com/ffuf/ffuf/v2@latest
nuclei Template scanner go install github.com/projectdiscovery/nuclei/v3/cmd/nuclei@latest
jwt_tool JWT attack CLI pip install jwt_tool
graphql-cop GraphQL misconfig scan pip install graphql-cop
grpcurl gRPC CLI go install github.com/fullstorydev/grpcurl/cmd/grpcurl@latest
arjun Parameter discovery pip install arjun
kiterunner API route discovery https://github.com/assetnote/kiterunner/releases

Full list: references/tools.md.

Last Validated

2026-04. Minimum tool versions: nuclei >= 3.3, ffuf >= 2.1, grpcurl >= 1.9, jwt_tool >= 2.2, graphql-cop >= 1.13.

Source: SKILL.md on GitHub

1 warning16d4 checks ยท Risk SAFE
  • Gen Agent Trust Hub16d

    The analyzed skill contains standard penetration testing guides, methodology documents, and common vulnerability checklists for API security auditing. No malicious behavior, prompt injection, or hidden execution channels were detected.

  • Socket16d

    3 alerts: gptSecurity

  • Snyk16d

    Risk: LOW ยท No issues

  • Runlayer7mo

    1/1 file flagged

Signed by skilld at f9bb3b2. This ties the file your Agent reads to that commit on GitHub. It does not review the instructions.

Last checked against GitHub 2 months ago.

Steadyupdated 6 months ago

README badge

README badge for hardw00t/ai-security-arsenal/api-security