Feroxbuster

Basic Directory Busting

# Basic scan
feroxbuster -u <url>

# With wordlist
feroxbuster -u <url> -w <wordlist>

# Extensions
feroxbuster -u <url> -x php,html,txt,bak

# Threads
feroxbuster -u <url> -t 50

# Ignore SSL errors
feroxbuster -u <url> -k

# Follow redirects
feroxbuster -u <url> -r

# Output file
feroxbuster -u <url> -o output.txt

# Quiet mode (no banner)
feroxbuster -u <url> -q

# Verbose
feroxbuster -u <url> -v

# No progress bar
feroxbuster -u <url> --no-state

Recursion

# Enable recursion (follows discovered dirs)
feroxbuster -u <url> -w <wordlist>  # recursion is ON by default

# Set recursion depth
feroxbuster -u <url> -d 3

# Disable recursion
feroxbuster -u <url> -n

# Recursion with depth limit + extensions
feroxbuster -u <url> -d 2 -x php,html

# Set max directories to recurse into
feroxbuster -u <url> -L 10

Filters — Status Codes

# Filter (exclude) specific status codes
feroxbuster -u <url> -C 404,400,500

# Match (include) only specific status codes
feroxbuster -u <url> -s 200,301,302

# Show 403s (useful for finding auth-protected dirs)
feroxbuster -u <url> -s 200,301,302,403

# Default is to show 200,204,301,302,307,308,401,403,405,500

Filters — Size, Words, Lines

# Filter by response size (bytes)
feroxbuster -u <url> -S 1234

# Filter by number of words
feroxbuster -u <url> -W 10

# Filter by number of lines
feroxbuster -u <url> -N 42

# Match by size
feroxbuster -u <url> --filter-size 0

# Regex filter on response body
feroxbuster -u <url> -X "Not Found|Error 404"

# Filter by similarity to a given response (auto-filter false positives)
feroxbuster -u <url> --filter-similar-to <url>/nonexistent_path_xyz

# Auto-tune (detect and filter wildcard responses)
feroxbuster -u <url> --auto-tune
feroxbuster -u <url> --auto-bail   # abort if too many errors

Rate Limiting

# Limit requests per second
feroxbuster -u <url> --rate-limit 50

# Delay between requests (ms)
feroxbuster -u <url> --time-limit 60s

# Timeout per request (seconds)
feroxbuster -u <url> --timeout 10

# Throttle connections
feroxbuster -u <url> -t 10 --rate-limit 20

Wordlists

# Specify wordlist
feroxbuster -u <url> -w /usr/share/seclists/Discovery/Web-Content/raft-medium-directories.txt

# Multiple wordlists
feroxbuster -u <url> -w /usr/share/seclists/Discovery/Web-Content/raft-medium-directories.txt \
  -w /usr/share/seclists/Discovery/Web-Content/raft-medium-files.txt

# Common wordlist paths
feroxbuster -u <url> -w /usr/share/seclists/Discovery/Web-Content/common.txt
feroxbuster -u <url> -w /usr/share/seclists/Discovery/Web-Content/directory-list-2.3-medium.txt
feroxbuster -u <url> -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt

Extensions

# PHP app
feroxbuster -u <url> -x php,html,txt,bak,old,zip

# ASP.NET app
feroxbuster -u <url> -x aspx,asp,html,txt,config,bak

# Java app
feroxbuster -u <url> -x jsp,jspx,do,action,html,txt

# Generic backup/sensitive files
feroxbuster -u <url> -x bak,old,orig,swp,~,zip,tar.gz,sql,conf,config,env,log

# No extension (directories only)
feroxbuster -u <url> -w /usr/share/seclists/Discovery/Web-Content/raft-medium-directories.txt

Authentication

# Basic auth
feroxbuster -u <url> -u <username> -p <password>

# Cookie
feroxbuster -u <url> -b "session=abc123; auth=xyz"

# Bearer token
feroxbuster -u <url> -H "Authorization: Bearer <password>"

# Multiple headers
feroxbuster -u <url> \
  -H "Authorization: Bearer <password>" \
  -H "X-Api-Key: abc123" \
  -H "Accept: application/json"

Replay Proxy

# Send ALL requests through proxy
feroxbuster -u <url> --proxy http://127.0.0.1:8080

# Send ONLY matched results through replay proxy (Burp history enrichment)
feroxbuster -u <url> --replay-proxy http://127.0.0.1:8080

# Replay proxy with HTTPS target
feroxbuster -u <url> -k --replay-proxy http://127.0.0.1:8080

# Replay with specific codes to replay
feroxbuster -u <url> --replay-proxy http://127.0.0.1:8080 --replay-codes 200,301,302
# Extract links from response bodies and add to scan queue
feroxbuster -u <url> -e

# Extract links with depth
feroxbuster -u <url> -e -d 3

# Extract links without recursion (just extract, don't recurse dirs)
feroxbuster -u <url> -e -n

Output

# Output to file (feroxbuster native format)
feroxbuster -u <url> -o results.txt

# JSON output
feroxbuster -u <url> --json -o results.json

# Output only 200s
feroxbuster -u <url> -s 200 -o hits.txt

# Grep-friendly (quiet + output)
feroxbuster -u <url> -q -o results.txt

# Silent (only print results, no progress)
feroxbuster -u <url> -q --silent

Resume From File

# Save state to file
feroxbuster -u <url> --state-file /tmp/ferox_state.json

# Resume from state file
feroxbuster --resume-from /tmp/ferox_state.json

# Auto-save state every N seconds
feroxbuster -u <url> --save-state

# The default state file is in current directory: ferox-http_target-TIMESTAMP.state

Auto-Tune & Smart Filtering

# Auto-tune: adjust scan based on errors (recommended for CTF)
feroxbuster -u <url> --auto-tune

# Auto-bail: stop scan if error rate too high
feroxbuster -u <url> --auto-bail

# Filter similar responses (anti-wildcard)
feroxbuster -u <url> --filter-similar-to http://<ip>/nonexistent_xyz123

# Combined smart scan
feroxbuster -u <url> --auto-tune --filter-similar-to <url>/xyz123abc

Common Patterns

# HTB/CTF quick web recon
feroxbuster -u <url> -w /usr/share/seclists/Discovery/Web-Content/raft-medium-directories.txt \
  -x php,html,txt -d 2 -t 50 -C 404 -o /tmp/ferox_<target>.txt

# Full recursive PHP app scan
feroxbuster -u <url> -w /usr/share/seclists/Discovery/Web-Content/directory-list-2.3-medium.txt \
  -x php,html,txt,bak,zip -d 3 -t 30 -C 404,500 \
  --replay-proxy http://127.0.0.1:8080 -k

# API endpoint discovery
feroxbuster -u <url>/api -w /usr/share/seclists/Discovery/Web-Content/common.txt \
  -s 200,201,204,400,401,403,405 -t 30 -n

# Sensitive file hunt
feroxbuster -u <url> -w /usr/share/seclists/Discovery/Web-Content/raft-large-files.txt \
  -x bak,old,zip,sql,conf,env,log -s 200 -C 404 -t 30

# Quiet pipeline output
feroxbuster -u <url> -q -C 404 -w <wordlist> | tee /tmp/ferox_output.txt

# With link extraction + replay proxy
feroxbuster -u <url> -e --replay-proxy http://127.0.0.1:8080 -k -C 404 -d 2