Skip to content

ffuf

A fast command-line tool that guesses hidden web paths, parameters and hostnames by trying many inputs.

Stars
17k
Forks
1.6k
Licence
MIT
Language
Go
Last update
1 months ago
Type
CLI

What it is

ffuf is a command-line web fuzzer written in Go. You give it a wordlist and mark where the word should go with the FUZZ keyword in a URL, header or POST body, and it sends a request for each word and reports the responses. People use it to find hidden directories, virtual hosts, and parameter names on web servers they are allowed to test.

  • Discover directories on a target using a wordlist: ffuf -w /path/to/wordlist -u https://target/FUZZ
  • Find virtual hosts by fuzzing the Host header and filtering a known default response size
  • Fuzz GET parameter names or values, or POST form fields
  • Limit run time with -maxtime or -maxtime-job, including with recursion

Great for

  • Security testers doing authorized web content discovery
  • Developers checking which paths or parameters their own server accepts
  • Students practising web fuzzing on legal practice targets such as the ffuf.me lessons mentioned in the README
  • People who want a scriptable command-line tool with response filtering

Not ideal for

  • Anyone testing sites they do not have permission to test, since it sends large numbers of requests
  • People who want a graphical interface; the README describes a command-line tool with an interactive mode, not a GUI
Step-by-step guide: how to use ffufInstall, first run, examples, tips and FAQs

How to get it

  1. 1

    Install with a package manager

    You'll need: Go 1.20 or greater (only if installing with go install or building from source)

    Install with Go

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

    Install with Homebrew on macOS

    brew install ffuf
  2. 2

    Run it

    • Install ffuf using one of the methods in the README or download a release binary
    • Prepare a wordlist file
    • Run ffuf -w /path/to/wordlist -u https://target/FUZZ on a host you are authorized to test
    • Add -fs or -fc to filter out the default responses
  3. 3

    Get the most out of it

    • Use a configuration file at $XDG_CONFIG_HOME/ffuf/ffufrc to set options that apply to every run
    • Use -config to switch between different configuration files for different tasks
    • Use -recursion with -recursion-depth to scan subdirectories, and -maxtime-job to cap each job
    • Use --input-cmd with an external mutator such as Radamsa to generate test payloads

Downloads

Strengths

  • Written in Go and distributed as prebuilt binaries for many platforms, per the release assets
  • Flexible filtering of responses by size, status code and other criteria, shown in the README examples
  • Supports configuration files and an external mutator via --input-cmd

Trade-offs

  • Its power is aimed at security testing, so it needs care and permission to use responsibly
  • Detailed documentation lives in an external wiki and a third-party guide rather than the README alone
  • Building from a git checkout needs Go 1.20 or greater, and local builds are not official releases

How it compares

ProjectStarsTypeLevelUpdatedBest for
ffuf (this)17kCLIintermediate1 months agoSecurity testers doing authorized web content discovery
spiderfoot24.2kAppintermediate7 months agoSecurity professionals doing reconnaissance during penetration tests or red team exercises
hetty12.5kAppintermediate4 months agoSecurity researchers testing web applications
angular101kFrameworkintermediate5 days agoDevelopers building larger, multi-screen web applications
webpack66kDev toolintermediate4 days agoFrontend developers building single-page or multi-page web apps
expo53.3kFrameworkintermediate4 days agoDevelopers who want to build iOS and Android apps with React and JavaScript

Stats synced from GitHub. The assessment above was drafted with AI from the project's README on 2026-10-29 and may miss recent changes — check the README before relying on a command. MIT licence: free to use, modify and distribute, including commercially, as long as you keep the copyright notice.