offensive-tools/recon/ffuf/SKILL.md
Fast web fuzzer for directory/file discovery, parameter fuzzing, virtual host discovery, and POST data fuzzing. Use when asked to fuzz web endpoints, discover hidden parameters, enumerate directories, test for injection points, or perform any HTTP-level wordlist-based fuzzing.
npx skillsauth add aeondave/malskill ffufInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Go-based web fuzzer — FUZZ keyword can be placed anywhere in a request (URL, headers, body, hostname).
# Directory fuzzing
ffuf -u http://example.com/FUZZ -w /usr/share/wordlists/dirb/common.txt
# With file extension
ffuf -u http://example.com/FUZZ -w common.txt -e .php,.html,.txt
# Subdomain/vhost fuzzing
ffuf -u http://FUZZ.example.com -w subdomains.txt -H "Host: FUZZ.example.com"
| Flag | Description |
|------|-------------|
| -u <url> | Target URL (use FUZZ as placeholder) |
| -w <wordlist> | Wordlist path (:KEYWORD for named payloads) |
| -e <ext> | Append extensions to each word |
| -t <n> | Threads (default 40) |
| -rate <n> | Max requests per second |
| -H <header> | Custom header |
| -X <method> | HTTP method (default GET) |
| -d <data> | POST data body |
| -b <cookies> | Cookie string |
| -r | Follow redirects |
| -k | Skip TLS verification |
| -x <proxy> | Proxy URL |
| -o <file> | Output file |
| -of <format> | Output format: json, html, csv, md, all |
| -v | Verbose (show redirects) |
| -s | Silent mode |
| -p <delay> | Delay between requests (e.g., 0.1 or 0.1-0.5) |
| Flag | Description |
|------|-------------|
| -mc <codes> | Match HTTP status codes (default 200,204,301,302,307,401,403,405) |
| -ml <n> | Match by response lines |
| -mw <n> | Match by word count |
| -ms <size> | Match by response size |
| -mr <regex> | Match by regex in body |
| -fc <codes> | Filter (exclude) status codes |
| -fl <n> | Filter by lines |
| -fw <n> | Filter by words |
| -fs <n> | Filter by size |
| -fr <regex> | Filter by regex |
# Two wordlists: W1 + W2
ffuf -u http://target.com/W1/W2 -w list1.txt:W1 -w list2.txt:W2
# Cluster bomb (all combinations)
ffuf -u http://target.com/W1?param=W2 -w list1.txt:W1 -w list2.txt:W2 -mode clusterbomb
# Pitchfork (paired positions)
ffuf -u http://target.com/W1?user=W2 -w paths.txt:W1 -w users.txt:W2 -mode pitchfork
# Standard dir fuzz with noise filtering
ffuf -u https://target.com/FUZZ -w raft-medium.txt -fc 404 -o dirs.json -of json
# POST login brute-force
ffuf -u https://target.com/login -X POST -d "user=admin&pass=FUZZ" -w passwords.txt -fc 401
# Parameter discovery (GET)
ffuf -u "https://target.com/page?FUZZ=test" -w params.txt -fw 42
# Vhost discovery
ffuf -u http://target.com -H "Host: FUZZ.target.com" -w vhosts.txt -fw 42
# API endpoint fuzzing with auth
ffuf -u https://api.target.com/v1/FUZZ -w api-words.txt -H "Authorization: Bearer TOKEN" -mc 200,201,204
| File | When to load |
|------|--------------|
| references/filters.md | All filter/matcher flags, noise reduction strategies, multi-FUZZ patterns |
development
Auth/lab ref: Unicorn Engine CPU-only emulation for shellcode, decryptors, custom VM handlers, instruction tracing, memory hooks, and register-level experiments.
development
Auth/lab ref: Renode board and SoC simulation for MCU/RTOS firmware, UART/GPIO/peripheral modeling, GDB remote debugging, REPL platforms, and RESC scripts.
development
Auth/lab ref: Qiling OS-layer binary emulation for PE/ELF/Mach-O/UEFI/shellcode with rootfs, syscall/API hooks, filesystem mapping, and runtime patching.
databases
Auth/lab ref: QEMU user-mode and full-system emulation for cross-arch binaries, firmware, kernels, disks, serial consoles, networking, and GDB stubs.