paramspider

repository·master·Indexed 25 days ago

https://github.com/devanshbatham/paramspider

A tool designed to mine URLs from Wayback Machine archives for a given domain or list of domains. It is optimized for bug hunting and fuzzing by filtering out non-essential URLs and replacing parameter values with a placeholder (defaulting to "FUZZ").

Tokens
881
Snippets
2
Records
12
Agent score
85%

What's inside paramspider

  1. Use paramspider to mine URLs

    master

    Use the paramspider CLI to fetch URLs related to a domain or a list of domains from Wayback archives. The tool filters out non-essential URLs to focus on parameters useful for bug hunting, fuzzing, or probing.

    paramspider -d example.com
  2. Examples of paramspider usage

    master

    Common usage patterns for paramspider include:

    Discover URLs for a single domain:

    paramspider -d example.com

    Discover URLs for multiple domains from a file:

    paramspider -l domains.txt

    Stream URLs to the terminal:

    paramspider -d example.com -s

    Use a web request proxy:

    paramspider -d example.com --proxy '127.0.0.1:7890'

    Set a custom parameter placeholder:

    paramspider -d example.com -p '"><h1>reflection</h1>'
  3. Reference paramspider CLI flags

    master

    The following flags are available for the paramspider command-line interface:

    • -d <domain>: Specify a single domain to discover URLs for.
    • -l <file>: Specify a file containing a list of domains to discover URLs for.
    • -s: Stream URLs directly to the terminal.
    • --proxy <proxy_url>: Set up a web request proxy (e.g., '127.0.0.1:7890').
    • -p <placeholder>: Add a custom placeholder for URL parameter values (defaults to "FUZZ").
  4. Fetch and clean URLs with fetch_and_clean_urls()

    master
    The fetch_and_clean_urls function is the core logic for retrieving URLs from the Wayback Machine CDX API, cleaning them, and saving the results. It filters out URLs with specific file extensions and replaces query parameter values with a provided placeholder.
  5. Fetch URL content with fetch_url_content()

    master

    Use fetch_url_content(url, proxy) to retrieve the content of a specified URL. The function automatically selects a random User-Agent from a predefined list to mimic different browsers and implements a retry mechanism (up to MAX_RETRIES) if the request fails.

    If a proxy string is provided, it is automatically configured for both http and https protocols. If the function fails after all retries, it logs an error and exits the process.

  6. Clean a list of URLs with clean_urls()

    master

    The clean_urls function processes a list of URLs by:

    1. Removing redundant port information (e.g., port 80 for http) via clean_url.
    2. Filtering out URLs that match the provided extensions list.
    3. Replacing all query parameter values with the provided placeholder string.
  7. Use the ParamSpider CLI

    master
    ParamSpider is a CLI tool used to mine URLs from the Wayback Machine. It fetches URLs for a specific domain or a list of domains, cleans them by removing static file extensions and redundant port information, and replaces parameter values with a placeholder (defaulting to FUZZ) to facilitate fuzzing. Results are saved to the results/ directory as <domain>.txt files.