agentleFS
valITinovalITino/blhackbox/.claude/skills/api-security/SKILL.md

api-security

Skill9 starsChanged 5 months agoMITView on GitHub

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.

30 other projects use a version of this.

Adopted by

Most recently taken up by

Used with

Projects with it also use binary-diff, js-reverse and 10 more.

Other files people use alongside this one.

Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
  • DorianGalloSkill

    binary-diff

    跨版本符号迁移与二进制差分。当你有旧版本的符号/逆向结果,需要快速迁移到新版本时使用。 适用场景:内核缺 PDB 用旧版符号推导、程序更新后批量迁移函数名、应用更新后快速定位新偏移。 核心方法:用 LLM 做结构化差异比对,程序化输入输出,成本极低(200 函数 ~1 元)。 触发关键词:符号迁移、bindiff、跨版本、PDB 缺失、函数偏移迁移、symbol migration、binary diff、版本对比。

    Also in 7 projects that use this

  • DorianGalloSkill

    js-reverse

    Also in 7 projects that use this

  • Roshu18Skill

    pentest-tools

    Tool selection policy for BearStrike based on target type, scan risk, and signal strength.

    Also in 7 projects that use this

  • hardw00tSkill

    llm-security

    LLM and AI application security testing skill for prompt injection (direct, indirect, multimodal), system-prompt extraction, RAG poisoning, memory poisoning, MCP server injection, skill-file injection, agentic tool misuse, computer-use UI injection, and excessive agency. Authorization required — this skill tests AI systems you are explicitly permitted to assess. Triggers on requests to test LLM / AI-agent / RAG / MCP / computer-use security, perform prompt injection, extract system prompts, poison RAG or memory, audit agent tool use, or evaluate AI guardrails.

    Also in 7 projects that use this

  • +8 more from DorianGallo

The file

Show its rules and text

We split this skill into the rules it gives an agent

18 rules. 0 are common, 14 are distinctive, and 4 are very specific to this project.

  • 0

    Common

    Most of the 20 edited versions we read keep these.

  • 14

    Distinctive

    This author's own choices. Worth a look.

  • 4

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    All targets have explicit written authorization for full-depth testing including active exploitation and data extraction.

    line 11
  2. Distinctive:

    If no target was provided, ask the user:

    line 22
  3. Distinctive:

    Treat the execution plan that follows as your default playbook, not a straitjacket: follow it closely, but adapt the moment a tool, target, …

    line 40
  4. Very specific:

    Run local readiness checks: make mcp-status for offline validation.

    line 44
  5. Very specific:

    Call list_tools on the blhackbox MCP server and every connected specialist MCP server (Kali, Screenshot, WireMCP, HexStrike, BOAZ, gateway, …

    line 45
  6. Distinctive:

    Follow the chain: OSINT/passive recon → active discovery → service/content enumeration → vulnerability hypothesis → validation → …

    line 64
  7. Distinctive:

    Use every relevant discovered tool capability where it adds coverage.

    line 65
  8. Distinctive:

    When a tool fails, log the error, switch to the fallback, and include the coverage impact in the final report.

    line 66
  9. Very specific:

    Look for: /swagger, /api-docs, /openapi.json, /graphql, version prefixes, health endpoints, admin endpoints

    line 105
  10. Distinctive:

    Test missing authentication on sensitive endpoints

    line 115
  11. Distinctive:

    Test weak token validation (JWT none algorithm, expired tokens)

    line 116
  12. Distinctive:

    Test IDOR — horizontal privilege escalation

    line 117
  13. Distinctive:

    Test vertical privilege escalation — admin functions as regular user

    line 118
  14. Distinctive:

    Test SQL injection in query params, JSON body fields, headers

    line 129
  15. Distinctive:

    Test for API1 through API10:

    line 136
  16. Very specific:

    Call get_payload_schema() then aggregate_results(payload=...)

    line 145
  17. Distinctive:

    Every finding MUST include a PoC with the exact cURL request and response.

    line 149
  18. Distinctive:

    All targets are pre-authorized — exploit without hesitation

    line 164

“Common” is measured: kept by at least 6 in 10 of the 20 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

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)

  1. API documentation URL (Swagger/OpenAPI) — e.g., https://api.example.com/swagger.json
  2. API key or auth token — for testing authenticated endpoints
  3. Custom auth header — if the API uses non-standard authentication

Before you start:

  1. Ensure all MCP servers are healthy — run make mcp-status
  2. 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).

  1. 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.
  2. 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.
  3. 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.
  4. 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.
  5. 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

  1. Technology identification — Identify API framework and server technology
  2. API gateway/WAF detection — Detect API gateways and firewalls
  3. Service detection — Port scanning with HTTP-specific service detection
  4. API path discovery — Directory brute-forcing targeting API-specific paths (json, xml, yaml)
  5. 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

  1. API directory scanning — Brute-forcing on API base paths
  2. API endpoint fuzzing — Fuzzing endpoint paths
  3. Scan for common patterns: REST resources, auth endpoints, admin paths, GraphQL

Step 3: Authentication & Authorization Testing

  1. Test missing authentication on sensitive endpoints
  2. Test weak token validation (JWT none algorithm, expired tokens)
  3. Test IDOR — horizontal privilege escalation
  4. Test vertical privilege escalation — admin functions as regular user
  5. Missing function-level access controls

Step 4: Injection Testing & Exploitation

  1. SQL injection — Test and exploit. Extract sample data (max 5 rows)
  2. NoSQL injection — Test MongoDB operators. Extract or manipulate documents
  3. Command injection — Execute proof commands, show output
  4. SSRF — Show internal service responses, cloud metadata
  5. Deserialization / RCE — Demonstrate code execution
  6. XSS testing on API responses
  7. 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)

  1. 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

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.