FFUF
Basic Usage
Fuzz File Paths
ffuf -w wordlist.txt -u https://example.com:PORT/FUZZ
Fuzz File Extensions
ffuf -w wordlist.txt -u https://example.com/index.FUZZ
File names
ffuf -w wordlist.txt -u https://example.com/blog/FUZZ.php
Use command output as a word list, for example fuzz user IDs with seq command
ffuf -c -w <(seq 1 1000) -u https://example.com/api/users/FUZZ
Generate wordlists of numbers with leading zeros
ffuf -c -w <(seq -f "%04g" 1 1000) -u https://example.com/api/users/FUZZ
Note: %04g
generates numbers with 4 digits with leading zeros.
Recursive Fuzzing
ffuf -recursion -recursion-depth 3 -w wordlist.txt -u https://example.com/FUZZ
Set Cookies
ffuf -b "NAME1=VALUE1; NAME2=VALUE2" -w wordlist.txt -u https://example.com/FUZZ
Multiple Wordlists
Try different usernames and passwords (Clusterbomb)
ffuf -w users.txt:USER -w passwords.txt:PASS -u https://example.com/login?username=USERFUZZ&password=PASSFUZZ --mode clusterbomb
Try different usernames and passwords (Pitchfork)
ffuf -w users.txt:USER -w passwords.txt:PASS -u https://example.com/login?username=USERFUZZ&password=PASSFUZZ --mode pitchfork
Fuzz multiple parts of the JSON request
ffuf -w usernames.txt:U -w passwords.txt:P -X POST -d '{"username":"USERFUZZ","password":"PASSFUZZ"}' -H 'Content-Type: application/json' -u https://example.com/api/login
Fuzz both directory and filenames
ffuf -w dirs.txt:DIR -w files.txt:FILE -u https://example.com/DIR/FILE
Fuzz with request file
ffuf -request request.txt -request-proto http -mode clusterbomb -w usernames.txt:USERFUZZ -w passwords.txt:PASSFUZZ -mc 200
Subdomains and Vhosts
Subdomains
ffuf -w wordlist.txt -u https://FUZZ.example.com/
VHosts
ffuf -w wordlist.txt -u http://example.com/ -H 'Host: FUZZ.example.com'
HTTP Parameters
Parameter names - GET
ffuf -w wordlist.txt -u http://example.com/index.php?FUZZ=key
Parameter names - POST
ffuf -w wordlist.txt -u https://example.com/index.php -X POST -d 'FUZZ=key' -H 'Content-Type: application/x-www-form-urlencoded'
Parameter value - POST
ffuf -w ids.txt -u https://example.com/index.php -X POST -d 'id=FUZZ' -H 'Content-Type: application/x-www-form-urlencoded'
Fuzzing JSON Post data
ffuf -X POST -H "Content-Type: application/json" -d '{"username": "admin", "password": "FUZZ"}' -w /path/to/wordlist.txt -u http://example.com/api/login
Headers
Change the user agents
ffuf -w wordlist.txt -u https://example.com/FUZZ -H "User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:88.0) Gecko/20100101 Firefox/88.0"
Set Content-type header
ffuf -w wordlist.txt -u https://example.com/FUZZ -H "Content-Type: application/json" -X POST
Setting Authorization header
ffuf -w /path/to/wordlist.txt -u https://example.com/FUZZ -H "Authorization: Bearer mytoken"
Bearer token value
ffuf -w tokens.txt -H "Authorization: Bearer FUZZ" -u https://example.com/api/resource
Header value
ffuf -w /path/to/wordlist.txt -u http://example.com -H "X-Forwarded-For: FUZZ"
Rate limits
Rate limit to 50 rq/s
ffuf -rate 50 -w wordlist.txt -u https://example.com/FUZZ
Set Number of threads
ffuf -t 5 -w wordlist.txt -u https://example.com/FUZZ
Delays
ffuf -w wordlist.txt -u https://example.com/FUZZ -t 2 -p 1
Filters
Filter 301 and 302 HTTP codes
ffuf -fc 301,302 -w wordlist.txt -u https://example.com/FUZZ
Filter 403 HTTP codes with Regex
ffuf -u https://example.com/FUZZ -w /usr/share/seclists/Discovery/Web-Content/raft-medium-files-lowercase.txt -fr '/\..*'
Filter by response size of 2003 bytes
ffuf -fs 2003 -w wordlist.txt -u https://example.com/FUZZ
Filter by response size in range between 2000 and 3000 bytes
ffuf -fs 2000-3000 -w wordlist.txt -u https://example.com/FUZZ
Filter by lines
ffuf -fl 5 -w wordlist.txt -u https://example.com/FUZZ
Filter by word count
ffuf -fw 10 -w wordlist.txt -u https://example.com/FUZZ
Automatically calibrate filtering options
ffuf -ac -w wordlist.txt -u https://example.com/FUZZ
Matchers
Matching Status Code
ffuf -u https://example.com/FUZZ -w wordlist.txt -mc 200
Matching Response Size
ffuf -u https://example.com/FUZZ -w wordlist.txt -ms 1000
You can also match a range of response sizes:
ffuf -u https://example.com/FUZZ -w wordlist.txt -ms 900-1100
Matching on Word Count
ffuf -u https://example.com/FUZZ -w wordlist.txt -mw 50
Matching by Response Lines
ffuf -u https://example.com/FUZZ -w wordlist.txt -ml 10
Regex Matching
ffuf -w /path/to/wordlist.txt -u https://example.com/F
Output Options
Save results in JSON
ffuf -w /path/to/wordlist.txt -u https://example.com/FUZZ -o results.json -of json
Save results in CSV
ffuf -w wordlist.txt -u https://example.com/FUZZ -o results.csv -of csv
Save output in all supported formats:
ffuf -w wordlist.txt -u https://example.com/FUZZ -o results -of all