Ffuf Web Fuzzing
Expert guidance for ffuf web fuzzing during authorized penetration testing.
Install
npx skills add trailofbits/skills-curated --skill ffuf-web-fuzzing -g -a claude-code -y- Repository
- trailofbits/skills-curated523
- Category
- Testing
- Updated
- 4mo ago
- License
- CC-BY-SA-4.0
- Context cost
- Mediumabout 1,621 tokens
- Runs scripts
- No, instructions only
What it does
Expert guidance for ffuf web fuzzing during authorized penetration testing. Covers directory discovery, subdomain enumeration, parameter fuzzing, authenticated fuzzing with raw requests, auto-calibration, and result analysis. Use when running ffuf scans, analyzing ffuf output, or building fuzzing strategies for web targets.
FFUF Web Fuzzing
Guidance for using ffuf (Fuzz Faster U Fool) effectively during authorized penetration testing.
Prerequisites
ffuf must be installed: brew install ffuf (macOS) or go install github.com/ffuf/ffuf/v2@latest
When to Use
- Running directory, file, or subdomain discovery against web targets
- Fuzzing API endpoints, parameters, or POST data
- Authenticated fuzzing with raw HTTP requests
- Analyzing ffuf JSON output for anomalies and interesting findings
- Building fuzzing strategies (wordlist selection, filtering, rate limiting)
- IDOR testing with authenticated sessions
When NOT to Use
- Target system is not in scope or authorization is unclear
- Passive reconnaissance is more appropriate (use OSINT tools instead)
- The target is a production system and rate limiting hasn't been configured
- You need a full vulnerability scanner (use Burp Suite, Nuclei, etc.)
- Testing for logic flaws that require multi-step interaction
Rationalizations to Reject
- "Auto-calibration is optional" --
-acis mandatory. Without it, results are buried in false positives and analysis is wasted effort. - "More threads = faster results" -- Hammering a target with
-t 200triggers WAFs, gets you blocked, and may crash staging environments. Start with-t 10 -rate 2for production targets. - "I'll filter later" -- Set up filtering before the scan. Running a 220k wordlist without filters and then trying to grep through the noise is backwards.
- "The default wordlist is fine" -- Wordlist selection is the most important decision. A generic wordlist misses technology-specific paths. See references/wordlists.md.
- "Raw requests are too much work" -- For authenticated fuzzing,
--request req.txtis simpler and more reliable than chaining-Hand-bflags. Capture once, fuzz many times.


