feroxbuster Documentation

repository·main·Indexed 27 days ago

https://github.com/epi052/feroxbuster

A fast, simple, recursive content discovery tool written in Rust, designed for forced browsing attacks to enumerate unlinked resources on web applications. Version 2.13.1 supports custom HTTP headers, proxying through Burp or SOCKS, and automatic 404 response pattern detection. It includes heuristics for detecting directory listings (Apache, TomCat, Python, ASP.NET) and provides flexible installation options for Kali Linux, MacOS, and Windows.

Tokens
4.5K
Snippets
17
Records
41
Agent score
92%

What's inside feroxbuster

  1. Install feroxbuster on Kali Linux

    main

    On Kali Linux, the preferred installation method is via the official repositories. This adds a ferox-config.toml file in /etc/feroxbuster/, enables command completion for bash, fish, and zsh, and includes a man page entry.

    sudo apt update && sudo apt install -y feroxbuster
  2. Automatic 404 response pattern detection

    main

    Feroxbuster can automatically detect and filter out 404-like (or other non-target) responses by analyzing patterns in non-existent URLs.

    How it works:

    1. It sends multiple requests to non-existent paths (using unique UUID-based strings) across different methods and extensions.
    2. It examines the responses for similarities in status code, content length, word count, and line count.
    3. If a consistent pattern is found, it creates a WildcardFilter to exclude these responses from future scan results.
    4. It may also create a SimilarityFilter as a fallback.

    Note: This feature is bypassed if the --dont-filter configuration is enabled.

  3. Configure wordlist sources

    main

    Feroxbuster can load wordlists from local files or remote URLs.

    • Local Wordlist: Provide a path to a file. If the primary wordlist is not found, the tool attempts to use a SECONDARY_WORDLIST if it exists.
    • Remote Wordlist: If the wordlist path starts with http, feroxbuster will attempt to download the wordlist to a file named after the last segment of the URL before scanning.

    Note: Leading forward-slashes in wordlist entries (e.g., /word) are automatically trimmed to ensure correct URL construction (e.g., http://target.com/word instead of http://target.com//word).

  4. Use scope-aware redirects in ClientConfig

    main
    When redirects is set to true in ClientConfig, the client uses a custom redirect policy. If the scope field is populated with a list of Urls, the client will only follow redirects if the target URL is within that scope (checked via is_in_scope). If scope is empty, it falls back to a default limit of 10 redirects.
  5. Set a time limit for scans

    main

    The --time-limit option allows you to restrict how long a scan runs.

    In standard mode, a dedicated thread is spawned to enforce this limit. In --parallel mode, the time limit is enforced within each individual child process to ensure each sub-scan respects the constraint.

  6. Resume a previous scan

    main

    Using the --resume-from flag allows feroxbuster to pick up where a previous scan left off. The tool will:

    • Populate the FeroxScans object with previously seen scans from the provided file.
    • Load existing statistics to maintain progress bar accuracy.
    • Display known responses and completed bars for the resumed targets.
  7. Cancel active scans by ID

    main

    You can cancel specific active scans using the c or cancel command. You can specify individual IDs, ranges, or comma-separated lists.

    • Single ID: c 3
    • Range: c 1-4
    • List: c 1,3,5
    • Mixed: c 1-4,8,9-13
    • Force Cancel: Append -f to bypass confirmation for specific IDs (e.g., c -f 3).
  8. Update feroxbuster via CLI

    main
    Feroxbuster includes a built-in mechanism to check for and install updates. If the update_app logic is triggered (typically via a specific flag or internal check), it will attempt to update the binary from the GitHub repository.