ffuf (Fuzz Faster U Fool)
ffuf is a fast and flexible web fuzzing tool written in Go. It is primarily used by security professionals and bug bounty hunters to discover hidden content, such as directories, files, virtual hosts, and parameters, by automatically injecting a large number of inputs (from a wordlist) and analyzing the server's responses.
Basic Subdomain Enumeration
This command is used to discover subdomains of a target website. It fuzzes the Host header, trying different subdomain prefixes and checking which ones resolve to a valid host. The -fs <size> filter is crucial here; it hides responses of a specific size (usually the size of the error page returned for non-existent subdomains).
ffuf -ic -w /usr/share/seclists/Discovery/DNS/subdomains-top1million-110000.txt:FUZZ -u http://targetsite.com -H 'Host: FUZZ.targetsite.com' -t 50 -fs <size>
Common Usage
Basic fuzzing of a URL path
ffuf -u http://example.com/FUZZ
Fuzz with a specific wordlist
ffuf -u http://example.com/FUZZ -w wordlist.txt
Fuzz with a specific wordlist, automatically ignoring any comments in the wordlist
ffuf -u http://example.com/FUZZ -w wordlist.txt -ic
Colorize the output for better readability
ffuf -u http://example.com/FUZZ -w wordlist.txt -c
Filter results by status code (e.g., 200)
ffuf -u http://example.com/FUZZ -w wordlist.txt -mc 200
Filter results by matching a regex pattern
ffuf -u http://example.com/FUZZ -w wordlist.txt -mr "Welcome"
Add extensions to each wordlist entry
ffuf -u http://example.com/FUZZ -w wordlist.txt -e .php,.html
Set the number of threads (e.g., 50) for faster fuzzing
ffuf -u http://example.com/FUZZ -w wordlist.txt -t 50
Use a proxy for requests
ffuf -u http://example.com/FUZZ -w wordlist.txt -x http://127.0.0.1:8080
Fuzz page parameters
ffuf -w /opt/useful/SecLists/Discovery/Web-Content/burp-parameter-names.txt:FUZZ -u 'http://<SERVER_IP>:<PORT>/index.php?FUZZ=value' -fs 2287
Fuzz LFI payloads
ffuf -w /opt/useful/SecLists/Fuzzing/LFI/LFI-Jhaddix.txt:FUZZ -u 'http://<SERVER_IP>:<PORT>/index.php?language=FUZZ' -fs 2287
Fuzz webroot path
ffuf -w /opt/useful/SecLists/Discovery/Web-Content/default-web-root-directory-linux.txt:FUZZ -u 'http://<SERVER_IP>:<PORT>/index.php?language=../../../../FUZZ/index.php' -fs 2287
Fuzz server configurations
ffuf -w ./LFI-WordList-Linux:FUZZ -u 'http://<SERVER_IP>:<PORT>/index.php?language=../../../../FUZZ' -fs 2287