Skip to content

Feroxbuster

Feroxbuster is a Rust-based tool for web content discovery featuring rapid scanning, automatic recursion, and intelligent filtering. This cheat sheet covers installation, usage patterns, and advanced techniques.

Installation

Linux/Ubuntu

# Install from repository (if available)
sudo apt update
sudo apt install feroxbuster

# Download latest release
curl -sL https://github.com/epi052/feroxbuster/releases/latest/download/x86_64-linux-feroxbuster.zip -o feroxbuster.zip
unzip feroxbuster.zip
chmod +x feroxbuster
sudo mv feroxbuster /usr/local/bin/

# Build from source
cargo install feroxbuster

macOS

# Homebrew
brew install feroxbuster

# Manual download
curl -sL https://github.com/epi052/feroxbuster/releases/latest/download/x86_64-macos-feroxbuster.zip -o feroxbuster.zip
unzip feroxbuster.zip
chmod +x feroxbuster
sudo mv feroxbuster /usr/local/bin/

Windows

# Scoop
scoop install feroxbuster

# Manual download and extract to PATH

Basic Commands

CommandDescription
feroxbuster -u http://target.com -w wordlist.txtBasic scan
feroxbuster --url http://target.com -w wordlist.txtURL format alternative
feroxbuster -u http://target.com -w wordlist.txt -t 50Set thread count
feroxbuster -u http://target.com:8080 -w wordlist.txtSpecify custom port
feroxbuster -u https://target.com -w wordlist.txt -kHTTPS with insecure SSL
feroxbuster --helpDisplay help menu
feroxbuster --versionShow version info

Essential Options

OptionDescription
-u, --url <URL>Target URL
-w, --wordlist <FILE>Wordlist file path
-t, --threads <NUM>Number of concurrent requests (default: 50)
-x, --extensions <EXT>File extensions (comma-separated: php,html,txt)
-s, --status-codes <CODES>HTTP status codes to report (default: 200,204,301,302,307,401,403,405,500)
--filter-status <CODES>Status codes to ignore/filter
--filter-size <SIZE>Filter responses by size
--filter-word-count <NUM>Filter by word count
--filter-line-count <NUM>Filter by line count
-o, --output <FILE>Save results to file
-r, --redirectsFollow redirects
-n, --no-recursionDisable recursion
--depth <NUM>Maximum recursion depth
-d, --scan-limit <NUM>Limit entries per directory scan
-p, --proxy <IP:PORT>HTTP proxy address
-H, --headers <HEADER>Add custom header (repeatable)
-A, --user-agent <UA>Custom User-Agent
--insecure, -kSkip SSL verification
-v, --verboseVerbose output
--jsonJSON output format
--url-denylist <FILE>Skip certain URLs

Common Usage Patterns

Basic Directory Enumeration

# Default wordlist scan
feroxbuster -u http://target.com -w /usr/share/wordlists/dirb/common.txt

# With custom thread count for speed
feroxbuster -u http://target.com -w wordlist.txt -t 200

# Multiple extensions
feroxbuster -u http://target.com -w wordlist.txt -x php,html,jsp,aspx

# Save results
feroxbuster -u http://target.com -w wordlist.txt -o results.txt

Recursive Scanning

# Enable recursion with depth limit
feroxbuster -u http://target.com -w wordlist.txt -r --depth 3

# Full recursion (default)
feroxbuster -u http://target.com -w wordlist.txt -r

# Limit scan entries per directory
feroxbuster -u http://target.com -w wordlist.txt -r -d 100

Filtering Results

# Filter by status code (ignore 404s)
feroxbuster -u http://target.com -w wordlist.txt --filter-status 404

# Filter by response size (avoid false positives)
feroxbuster -u http://target.com -w wordlist.txt --filter-size 1234

# Filter by word count
feroxbuster -u http://target.com -w wordlist.txt --filter-word-count 0

# Combine filters
feroxbuster -u http://target.com -w wordlist.txt \
  --filter-status 404,403 \
  --filter-size 5000

Advanced Techniques

# Custom headers
feroxbuster -u http://target.com -w wordlist.txt \
  -H "Authorization: Bearer token123" \
  -H "X-Custom-Header: value"

# Custom User-Agent
feroxbuster -u http://target.com -w wordlist.txt \
  -A "Mozilla/5.0 (Windows NT 10.0; Win64; x64)"

# Through HTTP proxy (Burp Suite)
feroxbuster -u http://target.com -w wordlist.txt -p http://127.0.0.1:8080

# HTTPS with self-signed certificate
feroxbuster -u https://target.com -w wordlist.txt -k

# Verbose output with JSON
feroxbuster -u http://target.com -w wordlist.txt --json --output results.json -v

# Follow redirects
feroxbuster -u http://target.com -w wordlist.txt -r --redirects

Configuration File

Feroxbuster supports .feroxbuster configuration file:

# Create config in home directory
cat > ~/.feroxbuster.toml << EOF
[general]
threads = 100
wordlist = "/usr/share/wordlists/dirb/common.txt"
timeout = 10
status_codes = [200, 204, 301, 302]

[filter]
status_codes = [404, 403]

[scanner]
follow_redirects = true
depth = 3
EOF

# Use config file
feroxbuster -u http://target.com --config ~/.feroxbuster.toml

Wordlist Strategies

Common Wordlists

# System wordlists
/usr/share/wordlists/dirb/common.txt
/usr/share/wordlists/dirb/big.txt
/usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt

# Download SecLists
git clone https://github.com/danielmiessler/SecLists.git
feroxbuster -u http://target.com -w SecLists/Discovery/Web-Content/common.txt

# API endpoints
feroxbuster -u http://target.com -w SecLists/Discovery/Web-Content/api/objects.txt

# Database files
feroxbuster -u http://target.com -w SecLists/Discovery/Web-Content/quickhits.txt -x db,sql,backup

Create Custom Wordlists

# Extract words from website
curl -s http://target.com | tr ' ' '\n' | grep -E '^[a-z]+$' | sort -u > custom.txt

# Generate admin wordlist
echo -e "admin\nadministrator\nbackend\ndashboard\nconsole" > admin.txt

# Combine wordlists
cat wordlist1.txt wordlist2.txt | sort -u > combined.txt

# Generate variations
for word in admin api backup; do
  echo "$word"
  echo "${word}s"
  echo "_$word"
  echo "old_$word"
done > variations.txt

Output Formats

JSON Output

# Generate JSON results
feroxbuster -u http://target.com -w wordlist.txt --json -o results.json

# Parse JSON results
cat results.json | jq '.results[] | select(.status == 200) | .url'

Standard Output

# Verbose output to console
feroxbuster -u http://target.com -w wordlist.txt -v | tee results.txt

# Save with timestamp
feroxbuster -u http://target.com -w wordlist.txt -o "scan_$(date +%s).txt"

Comparison with Alternatives

ToolSpeedRecursionFeaturesBest For
FeroxbusterVery FastExcellentAuto-filtering, JSONModern, automated scanning
GobusterFastGoodMultiple modesDNS, vhost enumeration
DirBusterSlowLimitedGUI optionManual assessment
FFUFVery FastManualAdvanced fuzzingCustom payloads

Troubleshooting

Common Issues

High rate limiting or timeouts

# Reduce thread count
feroxbuster -u http://target.com -w wordlist.txt -t 10

# Increase timeout
feroxbuster -u http://target.com -w wordlist.txt --timeout 30

False positives from catch-all pages

# Filter custom error pages by size
feroxbuster -u http://target.com -w wordlist.txt --filter-size 1234

# Identify error page size first
curl -s http://target.com/nonexistent | wc -c

SSL certificate errors

# Ignore certificate validation
feroxbuster -u https://target.com -w wordlist.txt --insecure

Best Practices

  • Use appropriate thread counts (50-200) based on target capacity
  • Always use a wordlist tailored to the target technology
  • Filter common false positives (catch-all pages, default errors)
  • Use recursion with depth limits to avoid excessive scanning
  • Combine status code and size filtering for accuracy
  • Test manually with curl before automated scanning
  • Document filter rules used for result interpretation
  • Save results with timestamps for historical reference

Advanced Examples

Full Web Application Scan

feroxbuster -u http://target.com \
  -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt \
  -x php,html,js,json,xml \
  -t 100 \
  -r \
  --depth 3 \
  --filter-status 404,403 \
  --filter-size 1000 \
  -o scan_results.txt \
  -v

API Endpoint Discovery

feroxbuster -u http://target.com/api \
  -w ./api_wordlist.txt \
  -x json,xml \
  -t 150 \
  -r \
  --filter-status 404 \
  -H "Content-Type: application/json" \
  --json -o api_endpoints.json

Evasion Techniques

# Custom User-Agent to evade WAF
feroxbuster -u http://target.com -w wordlist.txt \
  -A "Mozilla/5.0 (X11; Linux x86_64)" \
  -H "X-Forwarded-For: 127.0.0.1" \
  -p http://proxy:8080

# Rate limiting friendly
feroxbuster -u http://target.com -w wordlist.txt \
  -t 20 \
  --timeout 20 \
  -r

Last updated: 2025-03-30 | feroxbuster GitHub