Automated summary
This skill documents how to use ffuf, a Go-based web fuzzer, to discover hidden directories, subdomains, virtual hosts, and API endpoints from wordlists.
Strengths
- Covers ffuf's main workflows: content discovery, GET/POST parameter fuzzing, DNS and virtual-host enumeration
- Explains the essential filters (-fc, -fs, -mc, -mr) that keep results free of false positives
- Includes advanced options: multiple FUZZ positions, recursion, extensions, rate limiting, and JSON output
- Points to SecLists and provides copy-pasteable install commands
Limitations
- Does not discuss the legal and ethical authorization requirements beyond an implicit hint in one example
- Assumes the reader can pick and interpret wordlists, with no guidance on wordlist selection
- Little detail on tuning throttling to avoid overwhelming a production server
- No coverage of result analysis or chaining with other reconnaissance tools
Use it when an authorized penetration test or bug bounty engagement needs mapping of hidden web content, subdomains, or undocumented API endpoints.
Do not use it against targets you are not explicitly authorized to test, or as a replacement for a full vulnerability scan.
Security analysis
CautionThe skill teaches web fuzzing with ffuf, a legitimate security tool, and includes clear authorization and rate-limiting guidance. It does not contain destructive or exfiltrating commands, but the network-scanning capability is powerful and could be misused, so it warrants caution.
- •Instructs use of ffuf, a network fuzzing tool that sends numerous HTTP requests and can cause load or be used for unauthorized scanning if the user lacks permission.
- •Includes a command to download and run a binary from GitHub releases without checksum verification, though this is common practice.
- •Skill includes explicit authorization warning, but execution still relies on user compliance.
Examples
Run ffuf against https://staging.example.com to find hidden directories using common.txt, and filter out 404 responses.Enumerate subdomains of example.com with ffuf and SecLists' top 5000 subdomain list, hiding 404s.Fuzz API paths under https://api.example.com/v1/ with my bearer token, showing only 200, 401 and 403 responses.name: ffuf description: >- Discover hidden content, directories, subdomains, and API endpoints with ffuf — the fastest web fuzzer. Use when someone asks to "find hidden directories", "fuzz URLs", "discover API endpoints", "subdomain enumeration", "content discovery", "ffuf", "brute force paths", or "find hidden files on a website". Covers directory fuzzing, parameter fuzzing, subdomain discovery, virtual host enumeration, and recursive scanning. license: Apache-2.0 compatibility: "Any OS. Go binary." metadata: author: terminal-skills version: "1.0.0" category: devops tags: ["security", "fuzzing", "recon", "ffuf", "content-discovery"]
ffuf (Fuzz Faster U Fool)
Overview
ffuf is the fastest web fuzzer available — written in Go, it discovers hidden files, directories, subdomains, and API endpoints by sending thousands of requests with wordlist-based payloads. Unlike dirbuster or gobuster, ffuf supports multiple fuzzing positions (URL, headers, POST body, cookies), response filtering, and recursive scanning.
When to Use
- Discovering hidden directories and files on web servers
- Finding undocumented API endpoints
- Subdomain and virtual host enumeration
- Parameter discovery (GET/POST)
- Bug bounty reconnaissance
- Pre-pentest content discovery
Instructions
Setup
# Install
go install github.com/ffuf/ffuf/v2@latest
# Or download binary
wget https://github.com/ffuf/ffuf/releases/latest/download/ffuf_linux_amd64.tar.gz
tar xzf ffuf_linux_amd64.tar.gz
# Get wordlists (SecLists is the standard)
git clone --depth 1 https://github.com/danielmiessler/SecLists.git
Directory Discovery
# Basic directory fuzzing — FUZZ keyword marks the injection point
ffuf -u https://target.com/FUZZ -w SecLists/Discovery/Web-Content/common.txt
# Filter by response code (ignore 404s)
ffuf -u https://target.com/FUZZ -w common.txt -fc 404
# Filter by response size (remove default pages)
ffuf -u https://target.com/FUZZ -w common.txt -fs 4242
# Match only specific codes
ffuf -u https://target.com/FUZZ -w common.txt -mc 200,301,302,403
# Recursive scanning — follow discovered directories
ffuf -u https://target.com/FUZZ -w common.txt -recursion -recursion-depth 2
# With extensions
ffuf -u https://target.com/FUZZ -w common.txt -e .php,.bak,.old,.txt,.json,.env
Subdomain Discovery
# Subdomain fuzzing via DNS
ffuf -u https://FUZZ.target.com -w SecLists/Discovery/DNS/subdomains-top1million-5000.txt -fc 404
# Virtual host discovery (different from DNS — checks Host header)
ffuf -u https://target.com -w subdomains.txt -H "Host: FUZZ.target.com" -fs 1234
API Endpoint Discovery
# REST API path fuzzing
ffuf -u https://api.target.com/v1/FUZZ -w SecLists/Discovery/Web-Content/api/api-endpoints.txt -mc 200,401,403
# API with authentication
ffuf -u https://api.target.com/v1/FUZZ -w api-endpoints.txt \
-H "Authorization: Bearer eyJhbG..." -mc 200
# Parameter fuzzing (GET)
ffuf -u "https://target.com/api/users?FUZZ=value" -w SecLists/Discovery/Web-Content/burp-parameter-names.txt -fs 0
# POST body parameter fuzzing
ffuf -u https://target.com/api/login -X POST \
-H "Content-Type: application/json" \
-d '{"username":"admin","FUZZ":"test"}' \
-w params.txt -fc 400
Advanced Usage
# Multiple wordlists (two FUZZ positions: W1 and W2)
ffuf -u https://target.com/W1/W2 -w endpoints.txt:W1 -w ids.txt:W2
# Output to JSON for automation
ffuf -u https://target.com/FUZZ -w common.txt -o results.json -of json
# Throttled scanning (polite)
ffuf -u https://target.com/FUZZ -w common.txt -rate 50 -t 10
# Custom match on response body
ffuf -u https://target.com/FUZZ -w common.txt -mr "admin|dashboard|config"
Examples
Example 1: Full recon on a new target
User prompt: "I have permission to pentest example.com. Start with content discovery."
The agent will run ffuf for directory discovery with common.txt, then check for backup files (.bak, .old, .sql), hidden API endpoints, and admin panels.
Example 2: Find hidden API endpoints
User prompt: "Our API has undocumented endpoints left by previous developers. Find them."
The agent will fuzz API paths with REST-specific wordlists, try common API versioning patterns (/v1/, /v2/), and check HTTP methods (GET, POST, PUT, DELETE) on discovered endpoints.
Guidelines
- ALWAYS have authorization — fuzzing without permission is illegal
- Start with common.txt — then escalate to bigger wordlists if needed
- Filter noise first — use
-fc 404or-fs <size>to remove false positives - Rate limit —
-rate 50for production targets, unlimited for local/staging - FUZZ is the keyword — place it wherever you want to inject wordlist entries
- Extensions matter —
-e .php,.bak,.envcatches backup and config files - JSON output for automation —
-o results.json -of jsonfor pipeline integration - Recursive with caution —
-recursion-depth 2max to avoid infinite loops - SecLists is essential — the standard wordlist collection for web fuzzing
From the file to a first result
The download contains exactly the content displayed on this page. This copy may differ from the latest version in the source repository.
View the source and supporting filesThis download contains SKILL.md only. Any scripts, references, templates and dependencies are not included. Get the required files from the source, preserving their directory structure, before continuing.
1. Download the file
Download SKILL.mdFrom the root of a test project, save the file as .skill-downloads/ffuf-web-content-api-discovery-mtpag6th/SKILL.md, or use the command below. This folder is for inspecting the skill before installation.
Command for macOS/Linux or WSL: requires a POSIX shell and curl. On Windows without WSL, use the download button and create the folder manually.
mkdir -p '.skill-downloads/ffuf-web-content-api-discovery-mtpag6th' && curl --fail --show-error --location 'https://skills-guides.com/api/skills/ffuf-web-content-api-discovery-mtpag6th/download' --output '.skill-downloads/ffuf-web-content-api-discovery-mtpag6th/SKILL.md.part' && mv '.skill-downloads/ffuf-web-content-api-discovery-mtpag6th/SKILL.md.part' '.skill-downloads/ffuf-web-content-api-discovery-mtpag6th/SKILL.md'2. Check prerequisites
Read SKILL.md before using it. If it references scripts or external services, inspect them and prepare the required access in your test environment.
Environment declared by the author: Any OS. Go binary.
Original excerpt: Setup
# Install
go install github.com/ffuf/ffuf/v2@latest
# Or download binary
wget https://github.com/ffuf/ffuf/releases/latest/download/ffuf_linux_amd64.tar.gz
tar xzf ffuf_linux_amd64.tar.gz
# Get wordlists (SecLists is the standard)
git clone --depth 1 https://github.com/danielmiessler/SecLists.git
The platforms on this page are catalog indications. The paths below follow tool documentation; they do not prove this skill has been run in those tools. No minimum tool version is confirmed for this listing.
3. Load the skill
After inspection, copy the complete folder into your project using one of the commands below, then open a new tool session. The command stops if a folder with the same name already exists: compare the files before replacing it.
Claude Code
test -f '.skill-downloads/ffuf-web-content-api-discovery-mtpag6th/SKILL.md' && test -s '.skill-downloads/ffuf-web-content-api-discovery-mtpag6th/SKILL.md' && mkdir -p '.claude/skills' && test ! -e '.claude/skills/ffuf' && cp -R '.skill-downloads/ffuf-web-content-api-discovery-mtpag6th' '.claude/skills/ffuf'Cursor
test -f '.skill-downloads/ffuf-web-content-api-discovery-mtpag6th/SKILL.md' && test -s '.skill-downloads/ffuf-web-content-api-discovery-mtpag6th/SKILL.md' && mkdir -p '.cursor/skills' && test ! -e '.cursor/skills/ffuf' && cp -R '.skill-downloads/ffuf-web-content-api-discovery-mtpag6th' '.cursor/skills/ffuf'Codex
test -f '.skill-downloads/ffuf-web-content-api-discovery-mtpag6th/SKILL.md' && test -s '.skill-downloads/ffuf-web-content-api-discovery-mtpag6th/SKILL.md' && mkdir -p '.agents/skills' && test ! -e '.agents/skills/ffuf' && cp -R '.skill-downloads/ffuf-web-content-api-discovery-mtpag6th' '.agents/skills/ffuf'OpenSkills
OpenSkills must already be installed. The local install/read procedure is checked with OpenSkills 1.5.0, which requires Node.js ≥ 20.6.0. Catalog slugs are not resolved automatically.
Official OpenSkills installationopenskills install './.skill-downloads/ffuf-web-content-api-discovery-mtpag6th'openskills read 'ffuf-web-content-api-discovery-mtpag6th'Reading should display the installed file content and its base directory. It does not run the skill or install its dependencies.
For an agent that reads AGENTS.md, then sync the index. This command changes AGENTS.md: review the diff before using it.
openskills syncManual method or another tool: attach SKILL.md to a conversation, or open it in an agent that can read files. Include any required supporting resources. No universal folder is recognized by every tool.
4. Try a first task
Use a short, synthetic input: an API endpoint, a small document or an interface brief. In a new conversation, attach the file or give the agent its path, then adapt this request:
Read .skill-downloads/ffuf-web-content-api-discovery-mtpag6th/SKILL.md and apply its instructions to this example: [describe a test input]. Identify any missing files, dependencies or access. Produce the result requested by the skill without inventing data or running unreviewed scripts.Expected result: output matching the skill instructions, or a precise list of missing prerequisites. A read confirmation alone does not validate a first use. If an external resource is unavailable, that path remains untested.
DeFi AMM Security
Security
Security checklist for Solidity AMM contracts, liquidity pools, and swap flows. Covers reentrancy, donation attacks, oracle manipulation, slippage, and integer math.
Semgrep Rule Creator
Security
Creates custom Semgrep rules for detecting security vulnerabilities, bug patterns, and code patterns. Includes test-first methodology, taint mode support, and validation steps. Helps when building targeted static analysis detections.
Dev Toolbar Review Guide
Security
Safety rules for the dev toolbar, PostHog client, and feature flags. Use when reviewing changes to dev-tools and related files, covering environment guards, override cookies, and SSE stream safety.