root@thehacksparrow:~/writeups$ SYSTEM ONLINE
root@sparrow:~/writeups$ cat feroxbuster.md
// web

Feroxbuster

21 Jul 2026 · 6 min read
feroxbuster is a web content discovery tool written in Rust, designed to brute-force hidden paths and files on an HTTP server. Its defining trait is that it recurses by default: every new directory it finds is scanned again, with no need to launch manual passes.

Automatic recursion is at once its greatest strength and its greatest hazard: on a large site it can blow up depth and request volume out of control. That is why the flags that really matter are not the discovery ones but the containment ones — -d to cap depth, --scan-limit for concurrent scans and --rate-limit to avoid overwhelming the server. Mastering the status, size, word and line filters is what separates a clean listing from a wall of noise.

1. Beginner level — recursive discovery and basic filters

FEROXBUSTER cheat sheet — Beginner
CommandWhat it does
feroxbuster -u https://<t>Recursive brute force by default
feroxbuster -u https://<t> -w <wl>With a specific wordlist
feroxbuster -u https://<t> -x php,txtAdds extensions
feroxbuster -u https://<t> -t 50Adjusts the number of threads
feroxbuster -u https://<t> -d 2Limits recursion depth
feroxbuster -u https://<t> -o out.txtSaves the results
feroxbuster -u https://<t> -s 200,301Filters by status code
feroxbuster -u https://<t> -C 404Excludes status codes
feroxbuster -u https://<t> -rFollows redirects
feroxbuster -u https://<t> -kIgnores certificate errors
feroxbuster -u https://<t> --no-recursionDisables recursion
feroxbuster -u https://<t> -qQuiet mode
feroxbuster --versionShows the version
feroxbuster -u https://<t> -nNo recursion (alias)

2. Advanced level — auth, fine filters and resume

FEROXBUSTER cheat sheet — Advanced
CommandWhat it does
feroxbuster -u https://<t> -H 'Authorization: Bearer x'Custom header
feroxbuster -u https://<t> -b 'session=x'Adds cookies
feroxbuster -u https://<t> --proxy http://127.0.0.1:8080Routes through a proxy
feroxbuster -u https://<t> -S 0Filters responses by size
feroxbuster -u https://<t> -W 20Filters by word count
feroxbuster -u https://<t> -X 15Filters by line count
feroxbuster -u https://<t> --filter-regex 'denied'Filters by regex in the response
feroxbuster -u https://<t> -a 'Mozilla/5.0'Customizes the User-Agent
feroxbuster -u https://<t> --rate-limit 100Limits requests per second
feroxbuster -u https://<t> -m GET,POSTTries several HTTP methods
feroxbuster -u https://<t> --dont-scan logoutExcludes paths from the scan
feroxbuster -u https://<t> --resume-from state.jsonResumes a previous scan
feroxbuster -u https://<t> -x php --scan-limit 2Limits concurrent scans
feroxbuster --stdin < urls.txtReads targets from stdin

3. Details people miss

  • Recursion is on by default: on a large site this multiplies requests very fast. Use -d to cap depth, or --no-recursion/-n if you only want the first level.
  • Don't confuse the status-code filters: -s includes only those codes, while -C excludes them. Mixing them up drops valid findings.
  • Against HTTPS targets with a self-signed certificate (common in labs) the scan fails until you add -k to ignore certificate errors.
  • If a directory always returns the same size or word count for non-existent pages, filter it with -S, -W or -X instead of by status; many servers answer 200 to everything (soft-404).
  • feroxbuster saves state automatically on Ctrl+C: you can pick a long scan back up with --resume-from state.json instead of starting over.

Responsible use

These commands are for systems you own or have explicit written authorisation to test (labs, CTFs, contracted engagements). Using them against third-party infrastructure without permission is illegal in most countries.