ffuf (Fuzz Faster U Fool) is a fast web fuzzer written in Go. It's used for directory discovery, parameter fuzzing, virtual host enumeration, and other brute-force testing against web applications.
# Directory discovery
ffuf -u https://target.com/FUZZ -w wordlist.txt
# File extension fuzzing
ffuf -u https://target.com/admin.FUZZ -w extensions.txt
# Parameter fuzzing
ffuf -u "https://target.com/api?FUZZ=test" -w params.txt
# POST data fuzzing
ffuf -u https://target.com/login -X POST \
-d "user=admin&pass=FUZZ" -w passwords.txt
# Filter by status code
ffuf -u URL/FUZZ -w wordlist.txt -fc 404
# Match specific codes
ffuf -u URL/FUZZ -w wordlist.txt -mc 200,301,302
# Filter by response size
ffuf -u URL/FUZZ -w wordlist.txt -fs 1234
# Filter by word count
ffuf -u URL/FUZZ -w wordlist.txt -fw 100
# Filter by line count
ffuf -u URL/FUZZ -w wordlist.txt -fl 10
# Multiple FUZZ keywords
ffuf -u https://FUZZ.target.com/FUZZ2 \
-w subdomains.txt:FUZZ -w dirs.txt:FUZZ2
# Virtual host fuzzing
ffuf -u https://target.com -H "Host: FUZZ.target.com" -w wordlist.txt
# Rate limiting
ffuf -u URL/FUZZ -w wordlist.txt -rate 100
# Output formats
ffuf -u URL/FUZZ -w wordlist.txt -o results.json -of json
ffuf is known for its speed due to Go's concurrency. Default threads can be adjusted with -t flag.