Updated Jul 15, 2026

Discovery

Map a site content tree with recursive path brute-force

Recursive content discovery with smart defaults and rich response filters.

Agent

overview

What feroxbuster does

After an HTTP prober marks a host live, feed feroxbuster a url-list and --wordlist. It brute-forces paths and recurses into discoveries down to --depth (default 4), so one run maps a content tree instead of a single level.

--smart turns on link extraction, auto-tune, word collection, and backup detection together. --thorough adds directory-listing scans and extension collection. Filter by --status-codes, size, lines, words, or regex to cut soft-404 noise.

Prefer ffuf when you need FUZZ in parameters or Host headers. Prefer katana when the job is link crawling, not wordlist brute-force. Enable --json on the managed node for structured paths in a file and folder output.

source github.com/epi052/feroxbuster

use cases

Where feroxbuster fits

Map a site's full content tree

Brute-force from a wordlist and let recursion walk into every directory it finds, so one run surfaces the whole reachable structure, not only the top level.

Discover more with smart mode

Turn on --smart to extract links, auto-tune the rate, collect words, and find backups in one flag, widening coverage without hand-tuning options.

Keep wide scans stable

Use auto-tune and auto-bail so the scan lowers its rate or stops when a target starts erroring, instead of hammering a struggling server.

Filter responses to cut noise

Filter out responses by status, size, line, word count, or regex so the output holds real hits rather than uniform soft-404 pages.

reference

feroxbuster inputs and flags

56 inputs
NameTypeFlagDescription
url-listFILE·List of target URLs to scan.
wordlistFILE--wordlistWordlist of paths and files to brute-force.
extensionsSTRING--extensionsFile extension(s) to search for (ex: php pdf js).
depthSTRING--depthMaximum recursion depth; 0 is infinite (default 4).
smartBOOLEAN--smartEnable extract-links, auto-tune, collect-words, and collect-backups.
threadsSTRING--threadsNumber of concurrent threads (default 50).
status-codesSTRING--status-codesStatus codes to include (default 200 204 301 302 307 308 401 403 405).
jsonBOOLEAN--jsonEmit JSON logs instead of normal text.

Showing key inputs. feroxbuster exposes 56 inputs in total.

Full flag reference (56 inputs)
NameTypeFlagDescription
dataFILE--dataRequest's Body - The file name starts with an `@` (ex: @post.bin)
jsonBOOLEAN--jsonEmit JSON logs to output instead of normal text
depthSTRING--depthMaximum recursion depth, a depth of 0 is infinite recursion (default: 4)
proxySTRING--proxyProxy to use for requests (ex: http(s)://host:port, socks5(h)://host:port)
querySTRING--queryRequest's URL query parameters (ex: token=stuff)
quietBOOLEAN--quietHide progress bars and banner
smartBOOLEAN--smartSet --extract-links, --auto-tune, --collect-words, and --collect-backups to true
silentBOOLEAN--silentOnly print URLs
cookiesSTRING--cookiesSpecify HTTP cookies to be used in each request (ex: stuff=things)
headersSTRING--headersSpecify HTTP headers to be used in each request (ex: Header:val)
methodsSTRING--methodsWhich HTTP request method(s) should be sent (default: GET)
threadsSTRING--threadsNumber of concurrent threads (default: 50)
timeoutSTRING--timeoutNumber of seconds before a client's request times out (default: 7)
insecureBOOLEAN--insecureDisables TLS certificate validation in the client
no-stateBOOLEAN--no-stateDisable state output file (*.state)
parallelSTRING--parallelRun parallel feroxbuster instances
protocolSTRING--protocolSpecify the protocol to use when targeting via --request-file or --url with domain only (default: https)
thoroughBOOLEAN--thoroughUse the same settings as --smart and set --collect-extensions and --scan-dir-listings to true
url-listFILE·List of target URLs
wordlistFILE--wordlistWordlist
add-slashBOOLEAN--add-slashAppend / to each request's URL
auto-bailBOOLEAN--auto-bailAutomatically stop scanning when an excessive amount of errors are encountered
auto-tuneBOOLEAN--auto-tuneAutomatically lower scan rate when an excessive amount of errors are encountered
dont-scanSTRING--dont-scanURL(s) or Regex Pattern(s) to exclude from recursion/scans
redirectsBOOLEAN--redirectsAllow client to follow redirects
verbositySTRING·Increase verbosity level (use -vv or more for greater effect. [CAUTION] 4 v's is probably too much)
client-keyFILE--client-keyAdd a PEM encoded private key for mutual authentication (mTLS)
extensionsSTRING--extensionsFile extension(s) to search for (ex: php pdf js)
limit-barsSTRING--limit-barsNumber of directory scan bars to show at any given time (default: no limit)
rate-limitBOOLEAN--rate-limitLimit number of requests per second (per directory) (default: 0, i.e. no limit)
scan-limitSTRING--scan-limitLimit total number of concurrent scans (default: 0, i.e. no limit)
time-limitSTRING--time-limitLimit total run time of all scans (ex: --time-limit 10m)
user-agentSTRING--user-agentSets the User-Agent (default: feroxbuster/2.7.1)
client-certFILE--client-certAdd a PEM encoded certificate for mutual authentication (mTLS)
dont-filterBOOLEAN--dont-filterDon't auto-filter wildcard responses
filter-sizeSTRING--filter-sizeFilter out messages of a particular size (ex: 4927,1970)
resume-fromFILE--resume-fromState file from which to resume a partially complete scan (ex. --resume-from ferox-1606586780.state)
dont-collectSTRING--dont-collectFile extension(s) to Ignore while collecting extensions (only used with `collect-extensions`)
filter-linesSTRING--filter-linesFilter out messages of a particular line count (ex: 31,30)
filter-regexSTRING--filter-regexFilter out messages via regular expression matching on the response's body/headers (ex: -X '^ignore me$')
filter-wordsSTRING--filter-wordsFilter out messages of a particular word count (ex: 91,82)
no-recursionBOOLEAN--no-recursionDo not scan recursively
random-agentBOOLEAN--random-agentUse a random User-Agent
replay-codesSTRING--replay-codesStatus Codes to send through a Replay Proxy when found (default: --status-codes value)
replay-proxySTRING--replay-proxySend only unfiltered requests through a Replay Proxy, instead of all requests
request-fileFILE--request-fileRaw HTTP request file to use as a template for all requests
server-certsFILE--server-certsAdd custom root certificate(s) for servers with unknown certificates
status-codesSTRING--status-codesStatus Codes to include (allow list) (default: 200 204 301 302 307 308 401 403 405)
collect-wordsBOOLEAN--collect-wordsAutomatically discover important words from within responses and add them to the wordlist
filter-statusSTRING--filter-statusFilter out status codes (deny list) (ex: 401)
collect-backupsSTRING--collect-backupsAutomatically request likely backup extensions for "found" urls (default: ~, .bak, .bak2, .old, .1)
force-recursionBOOLEAN--force-recursionForce recursion attempts on all 'found' endpoints (still respects recursion depth)
filter-similar-toSTRING--filter-similar-toFilter out pages that are similar to the given page (ex: http://site.xyz/soft404)
scan-dir-listingsBOOLEAN--scan-dir-listingsForce scans to recurse into directory listings (default: false)
collect-extensionsBOOLEAN--collect-extensionsAutomatically discover extensions and add them to --extensions (unless they're in `dont-collect`)
dont-extract-linksBOOLEAN--dont-extract-linksDon't extract links from response body (html, javascript, etc...

example

Run feroxbuster

feroxbuster · command
# feroxbuster against example.com (url-list input on Trickest)feroxbuster --wordlist raft-small-directories.txt --smart --depth 3 --threads 50 --json
sample output
200      GET        48l      210w     4820c https://example.com/admin/301      GET         7l       32w      178c https://example.com/login -> /login/200      GET       120l      890w    22140c https://example.com/api/403      GET        10l       40w      564c https://example.com/backup/200      GET        33l      150w     3102c https://example.com/static/200      GET        15l       60w     1240c https://staging.example.com/config/# feroxbuster found 6 paths under example.com

guidance

Choosing feroxbuster

Use feroxbuster for recursive directory and file discovery on a live host, especially when --smart defaults help. For parameter or vhost fuzzing use ffuf; for link crawling use katana.

ffuf

General FUZZ engine for paths, parameters, and vhosts. feroxbuster is more opinionated and recurses by default.

gobuster

Simple directory brute-forcing. feroxbuster adds recursion, auto-tuning, and richer filtering.

dirsearch

Python content scanner with built-in wordlists. Same discovery step; feroxbuster is the Rust implementation with --smart defaults.

faq

feroxbuster questions

Yes. It walks into directories it discovers down to --depth (default 4), turning one run into a content-tree scan.

Run feroxbuster yourself

A target and a wordlist feed feroxbuster, which recursively brute-forces paths and writes the discovered content as a queryable output.

Facts on this page come from the live Trickest tool library.