ffuf (Fuzz Faster U Fool) is the fastest web fuzzer available. This guide covers every use case from basic directory brute-forcing to advanced parameter discovery and virtual host enumeration, with filter tuning to eliminate noise.
Installation
# Go install go install github.com/ffuf/ffuf/v2@latest
# Recursive — auto-recurse into found directories ffuf -u https://target.com/FUZZ \ -w /usr/share/seclists/Discovery/Web-Content/common.txt \ -recursion -recursion-depth 3 \ -c
# Case insensitive fuzzing (useful for Windows targets) ffuf -u https://target.com/FUZZ -w wordlist.txt -c -ic
Response Filtering
Filtering is the most important skill in ffuf. Without it you drown in false positives.
# Filter by status code (default shows 200,204,301,302,307,401,403,405,500) -mc 200,302 # match ONLY these codes -fc 404 # filter OUT 404 -fc 404,403 # filter multiple
# Filter by response size -fs 1234 # filter out responses of exactly 1234 bytes -ms 200-1000 # match responses between 200-1000 bytes
# Filter by word count -fw 10 # filter responses with 10 words -mw 50-500 # match responses with 50-500 words
# Filter by line count -fl 50 # filter responses with 50 lines -ml 1-100 # match 1-100 lines
# Filter by regex -fr "Not Found"# filter responses containing "Not Found" -mr "admin"# match responses containing "admin"
Calibration workflow
Run a few quick requests to see what the default response looks like for non-existent paths.
# Parse JSON output cat results.json | python3 -c "import json,sys; [print(r['url']) for r in json.load(sys.stdin)['results']]"
Recommended Wordlists (SecLists)
# General web content Discovery/Web-Content/common.txt # ~4k words Discovery/Web-Content/raft-large-words.txt # ~119k words Discovery/Web-Content/raft-large-directories.txt
# API endpoints Discovery/Web-Content/api/api-endpoints.txt Discovery/Web-Content/api/objects.txt
No comments yet. Be the first.