Skip to content

ffuf

Fast web fuzzer written in Go

Description

ffuf (Fuzz Faster U Fool) is a fast web fuzzer written in Go. It's the go-to tool for directory discovery, virtual host enumeration, parameter fuzzing, and more. Highly configurable with filters, matchers, and multiple wordlist support.

Installation

BASH
go install github.com/ffuf/ffuf/v2@latest

Basic Usage

BASH
# Directory fuzzing
ffuf -u https://target.com/FUZZ -w wordlist.txt

# With file extensions
ffuf -u https://target.com/FUZZ -w wordlist.txt -e .php,.html,.js,.txt

# Filter 404 responses
ffuf -u https://target.com/FUZZ -w wordlist.txt -fc 404

# Match specific status codes
ffuf -u https://target.com/FUZZ -w wordlist.txt -mc 200,301,302

Advanced Usage

BASH
# Parameter fuzzing (GET)
ffuf -u "https://target.com/page?FUZZ=value" -w params.txt

# Parameter value fuzzing (POST)
ffuf -u https://target.com/login -X POST -d "user=admin&pass=FUZZ" -w passwords.txt

# Header fuzzing
ffuf -u https://target.com -H "X-Custom: FUZZ" -w wordlist.txt

# Multiple wordlists (clusterbomb)
ffuf -u "https://target.com/FUZZ1/FUZZ2" -w wordlist1.txt:FUZZ1 -w wordlist2.txt:FUZZ2

# Virtual host discovery
ffuf -u https://target.com -H "Host: FUZZ.target.com" -w subdomains.txt -fs 1234

# Recursive scanning
ffuf -u https://target.com/FUZZ -w wordlist.txt -recursion -recursion-depth 2

# Filter by response size
ffuf -u https://target.com/FUZZ -w wordlist.txt -fs 1234

# Filter by word count
ffuf -u https://target.com/FUZZ -w wordlist.txt -fw 42

# With cookies/authentication
ffuf -u https://target.com/FUZZ -w wordlist.txt -b "session=abc123"

# Rate limiting
ffuf -u https://target.com/FUZZ -w wordlist.txt -rate 100 -t 50

# Auto-calibration (automatic filtering)
ffuf -u https://target.com/FUZZ -w wordlist.txt -ac

# Output formats
ffuf -u https://target.com/FUZZ -w wordlist.txt -o results.json -of json

Common Workflows

BASH
# Content discovery with auto-calibration
ffuf -u https://target.com/FUZZ -w /usr/share/seclists/Discovery/Web-Content/directory-list-2.3-medium.txt -ac -t 100

# API endpoint discovery
ffuf -u https://target.com/api/FUZZ -w /usr/share/seclists/Discovery/Web-Content/api/api-endpoints.txt -mc 200,301

# Subdomain brute force via vhost
ffuf -u https://target.com -H "Host: FUZZ.target.com" -w /usr/share/seclists/Discovery/DNS/subdomains-top1million-5000.txt -ac

# Mass directory fuzzing on multiple hosts
cat alive.txt | xargs -I {} ffuf -u {}/FUZZ -w wordlist.txt -mc 200 -t 50