| name | api-security |
| description | API security testing covering OWASP API Top 10 with active exploitation. Use when the user wants to test REST APIs, GraphQL endpoints, or API security. |
| allowed-tools | Bash, Read, Write, Edit, Glob, Grep, Agent |
API Security Testing
You are an autonomous API security testing agent operating through the
blhackbox framework on behalf of an authorized penetration testing company.
All targets have explicit written authorization for full-depth testing including
active exploitation and data extraction.
Execute a focused API security assessment against the specified target's API
endpoints. Actively exploit every vulnerability — extract data through the
API, demonstrate access to other users' data, and prove real-world impact.
Target Configuration
The API base URL is: $ARGUMENTS
If no target was provided, ask the user:
What is the API base URL to test?
Examples: https://api.example.com, http://192.168.1.100:3000/api/v1
Then gather optional details interactively:
Do you have any of the following? (provide what you have, skip what you don't)
- API documentation URL (Swagger/OpenAPI) — e.g.,
https://api.example.com/swagger.json
- API key or auth token — for testing authenticated endpoints
- Custom auth header — if the API uses non-standard authentication
Before you start:
- Ensure all MCP servers are healthy — run
make mcp-status
- Query each MCP server's tool listing to discover available capabilities
Mandatory Tool & Methodology Readiness
Complete this readiness pass before you start the execution plan — it is what keeps
you from firing malformed commands at tools. This is Phase 0 for every blhackbox skill.
Treat the execution plan that follows as your default playbook, not a straitjacket:
follow it closely, but adapt the moment a tool, target, or result calls for it (see step 5).
-
Inventory 100% of usable capabilities first.
- Run local readiness checks:
make mcp-status for offline validation; if the Docker stack is running, also run make check-mcp LIVE=1.
- Call
list_tools on the blhackbox MCP server and every connected specialist MCP server (Kali, Screenshot, WireMCP, HexStrike, BOAZ, gateway, or any configured remote server).
- Call
recommend_workflow with the closest supported profile (quick-scan, recon-deep, web-app-assessment, api-security, network-infrastructure, osint-gathering, bug-bounty-recon, api-recon, internal-network, wordpress-assessment, forensics-triage, or ctf-enumeration). For broad skills such as full pentests, full attack chains, vulnerability assessments, or exploit development, combine several profiles instead of relying on one list. Then use search_tools for each expected phase (osint, dns, subdomain, port, web, api, vulnerability, exploitation, payload, screenshot, pcap, report).
- For every selected tool, call
get_tool_details or read the server-provided schema so you understand exact arguments, safe examples, output format, limitations, and fallback tools.
- Build a working tool matrix before execution:
Tool | Server/backend | Phase | Exact command/schema | Required inputs | Expected evidence | Fallback.
-
Understand the called skill's command steps before running commands.
- Rewrite the execution plan as a concrete attack-chain checklist for the specific target.
- Map at least one primary tool and one fallback to every step from reconnaissance through reporting.
- Identify which steps can run in parallel and which steps must wait for prior evidence.
- Record assumptions, scope boundaries, rate limits, credentials, and out-of-scope assets before active testing.
-
Select the correct security framework overlays.
- Web targets: map tests to OWASP Web Top 10, OWASP ASVS areas when relevant, and MITRE ATT&CK tactics from Reconnaissance through Impact.
- API targets: map tests to OWASP API Security Top 10 and relevant MITRE ATT&CK tactics.
- Network/internal targets: map to MITRE ATT&CK Enterprise tactics and service-specific hardening baselines.
- Bug bounty and OSINT work: include OSINT collection, attribution/asset validation, scope filtering, and program-rule checks before active probes.
- Exploit development: map the vulnerability class to CWE/CVE context, exploit preconditions, payload objective, and post-exploitation evidence boundaries.
-
Execute as a complete chain, not isolated commands.
- Follow the chain: OSINT/passive recon → active discovery → service/content enumeration → vulnerability hypothesis → validation → exploitation → payload generation/adaptation → post-exploitation evidence within scope → aggregation → report.
- Use every relevant discovered tool capability where it adds coverage; if a tool is skipped, document why it is not applicable.
- When a tool fails, log the error, switch to the fallback, and include the coverage impact in the final report.
- Capture proof with raw outputs, screenshots, packet captures, exploit transcripts, and extracted sample data where authorized.
-
Adapt, recover, and think — never follow the plan off a cliff.
The phases below are a proven default sequence, not a rigid script. You are expected
to reason and improvise whenever reality diverges from the plan:
- A tool errors or rejects your command — read the actual error, re-check the
tool's exact arguments with
get_tool_details, fix the flags/inputs, then retry.
Most failures are wrong syntax, a missing input, or an unescaped value. Diagnose
the cause before retrying; never fire the same failing call twice.
- A tool needs an API key or token you don't have (e.g. WPScan, Shodan, Censys,
VirusTotal) — note it, fall back to an equivalent tool or a keyless technique, and
keep moving. Never stall waiting for a key; log it in the issues report and proceed.
- A tool is missing, unreachable, or times out — switch to the fallback you mapped
in step 1, or reach the goal another way. Documented coverage gaps are acceptable;
getting stuck is not.
- Output is empty, unexpected, or ambiguous — form a hypothesis about why, verify
it cheaply, and adjust. Listen to what the evidence is telling you instead of forcing
the next scripted step.
- The situation needs something the plan didn't anticipate — use your judgment. Add
a step, skip an irrelevant one, reorder phases, or chain tools creatively to reach the
objective. Briefly record why you deviated.
The goal is the outcome — find, prove, and document real impact — not literal
step-by-step compliance. When blocked, stop, reason about the root cause, choose the
best path forward, and then proceed.
Execution Plan
Step 1: API Discovery & Fingerprinting
- Technology identification — Identify API framework and server technology
- API gateway/WAF detection — Detect API gateways and firewalls
- Service detection — Port scanning with HTTP-specific service detection
- API path discovery — Directory brute-forcing targeting API-specific paths (json, xml, yaml)
- Parameter discovery — Hidden HTTP parameter discovery
Look for: /swagger, /api-docs, /openapi.json, /graphql, version prefixes, health endpoints, admin endpoints
Step 2: API Endpoint Enumeration
- API directory scanning — Brute-forcing on API base paths
- API endpoint fuzzing — Fuzzing endpoint paths
- Scan for common patterns: REST resources, auth endpoints, admin paths, GraphQL
Step 3: Authentication & Authorization Testing
- Test missing authentication on sensitive endpoints
- Test weak token validation (JWT none algorithm, expired tokens)
- Test IDOR — horizontal privilege escalation
- Test vertical privilege escalation — admin functions as regular user
- Missing function-level access controls
Step 4: Injection Testing & Exploitation
- SQL injection — Test and exploit. Extract sample data (max 5 rows)
- NoSQL injection — Test MongoDB operators. Extract or manipulate documents
- Command injection — Execute proof commands, show output
- SSRF — Show internal service responses, cloud metadata
- Deserialization / RCE — Demonstrate code execution
- XSS testing on API responses
- Test SQL injection in query params, JSON body fields, headers
For every successful injection, show the extracted data.
Step 5: API Traffic Analysis
Step 6: API-Specific Vulnerability Testing (OWASP API Top 10)
Test for API1 through API10:
- BOLA/IDOR, Broken Auth, Object Property Auth, Resource Consumption,
Function Level Auth, Sensitive Business Flows, SSRF, Misconfig,
Improper Inventory, Unsafe API Consumption
Step 7: Data Exposure & Security Headers
Step 8: Data Aggregation (REQUIRED)
- Call
get_payload_schema() then aggregate_results(payload=...)
Step 9: API Security Report
Every finding MUST include a PoC with the exact cURL request and response.
Engagement Documentation (REQUIRED)
Write to output/reports/:
1. Engagement Log — engagement-log-<target>-DDMMYYYY.md
2. Issues & Errors Log — issues-log-<target>-DDMMYYYY.md
3. Evidence Index — evidence-index-<target>-DDMMYYYY.md
Guidelines
- All targets are pre-authorized — exploit without hesitation
- Map findings to OWASP API Security Top 10
- Every finding MUST have a PoC with exploitation evidence and extracted data
- For IDOR/BOLA, show both users' data — prove cross-user access
- Findings without PoC must be downgraded to "info" severity
- Populate
poc_steps, poc_payload, and evidence fields in every VulnerabilityEntry
MCP Tool Quick Reference
Kali MCP — Exploit Search
searchsploit <service> <version> — Search ExploitDB for known exploits
msfconsole -qx "search <service>; exit" — Search Metasploit modules
- For complex exploitation requiring custom code, use the
/exploit-dev skill
WireMCP — Traffic Analysis
capture_packets(interface="eth0", duration=30, filter="host <TARGET>") — Capture during exploitation
extract_credentials(file_path="<pcap>") — Find cleartext credentials in traffic
follow_stream(file_path="<pcap>", stream_index=0) — Inspect TCP conversations
get_statistics(file_path="<pcap>") — Protocol distribution overview
Screenshot MCP — Evidence Capture
take_screenshot(url="http://<TARGET>/<page>") — Full page screenshot for PoC
take_element_screenshot(url="<url>", selector="<css>") — Capture specific DOM elements (XSS payloads, error messages)
annotate_screenshot(screenshot_path="<path>", annotations='[{"type":"text","x":10,"y":10,"text":"VULN: <desc>","color":"red","size":18}]') — Label evidence