ffuf Cheat Sheet
Fast web fuzzer for directory discovery, virtual host enumeration, and parameter brute-forcing. Covers filtering, matching, recursion, and integration with wordlists.
Directory Brute-Forcing
Fuzz directories using the raft medium wordlist
$ ffuf -u https://target.com/FUZZ -w /usr/share/seclists/Discovery/Web-Content/raft-medium-directories.txtFuzz with file extensions appended to each word
$ ffuf -u https://target.com/FUZZ -w wordlist.txt -e .php,.html,.js,.txtLook for backup files while filtering out 403 responses
$ ffuf -u https://target.com/FUZZ -w wordlist.txt -e .bak,.old,.swp -fc 403Fuzz directories with an authentication header
$ ffuf -u https://target.com/FUZZ -w wordlist.txt -H "Authorization: Bearer TOKEN"Virtual Host Discovery
Discover virtual hosts by fuzzing the Host header, filter empty responses
$ ffuf -u http://target.com -H "Host: FUZZ.target.com" -w subdomains.txt -fs 0Vhost discovery against an IP, match only 200 status codes
$ ffuf -u http://10.10.10.10 -H "Host: FUZZ.target.com" -w subdomains.txt -mc 200Filter responses by line count to remove default pages
$ ffuf -u https://target.com -H "Host: FUZZ.target.com" -w subdomains.txt -fl 10Parameter Fuzzing
Discover hidden GET parameters by filtering default response size
$ ffuf -u https://target.com/page?FUZZ=test -w /usr/share/seclists/Discovery/Web-Content/burp-parameter-names.txt -fs 4242Fuzz JSON POST body parameter names
$ ffuf -u https://target.com/api -X POST -d '{"FUZZ":"value"}' -H "Content-Type: application/json" -w params.txtBrute-force numeric parameter values matching 200 responses
$ ffuf -u https://target.com/page?id=FUZZ -w /usr/share/seclists/Fuzzing/4-digits-0000-9999.txt -mc 200Clusterbomb attack with two wordlists on separate parameters
$ ffuf -u https://target.com/page -X POST -d "user=FUZZ&pass=FUZZ2" -w users.txt:FUZZ -w passes.txt:FUZZ2 -fc 401Filters & Matchers
Match only specific HTTP status codes
$ ffuf -u https://target.com/FUZZ -w wordlist.txt -mc 200,301,302Filter out responses of a specific byte size
$ ffuf -u https://target.com/FUZZ -w wordlist.txt -fs 1234Filter by word count to remove uniform error pages
$ ffuf -u https://target.com/FUZZ -w wordlist.txt -fw 42Filter responses matching a regex pattern in the body
$ ffuf -u https://target.com/FUZZ -w wordlist.txt -fr "not found|error"Auto-calibrate filters based on initial response analysis
$ ffuf -u https://target.com/FUZZ -w wordlist.txt -acRecursion & Output
Recursively fuzz discovered directories up to 3 levels deep
$ ffuf -u https://target.com/FUZZ -w wordlist.txt -recursion -recursion-depth 3Save results as JSON for programmatic processing
$ ffuf -u https://target.com/FUZZ -w wordlist.txt -o results.json -of jsonRun with 100 threads capped at 500 requests per second
$ ffuf -u https://target.com/FUZZ -w wordlist.txt -t 100 -rate 500Verbose CSV output including redirect locations
$ ffuf -u https://target.com/FUZZ -w wordlist.txt -o results.csv -of csv -v