Skip to main content

Extract historical robots.txt paths via Wayback Machine – a recon tool for bug hunters

Project description

Robofinder

PyPI Downloads Python 3.8+ License Stars

 _____       _            __ _           _           
|  __ \     | |          / _(_)         | |          
| |__) |___ | |__   ___ | |_ _ _ __   __| | ___ _ __ 
|  _  // _ \| '_ \ / _ \|  _| | '_ \ / _` |/ _ \ '__|
| | \ \ (_) | |_) | (_) | | | | | | | (_| |  __/ |   
|_|  \_\___/|_.__/ \___/|_| |_|_| |_|\__,_|\___|_|   
                                                     

Uncover hidden endpoints by mining every historical robots.txt snapshot from the Wayback Machine.


Why Robofinder?

Sites regularly scrub sensitive paths from robots.txt — but the Wayback Machine keeps every version ever crawled.

Robofinder queries Archive.org's CDX API to pull all historical robots.txt snapshots for a target, deduplicates every Allow, Disallow, and Sitemap directive, and prints the full list. Paths that were quietly removed from production may still be alive and reachable.

Built for: bug bounty recon · OSINT · attack-surface mapping · forgotten endpoint discovery


Install

pip install robofinder
Install from source
git clone https://github.com/Spix0r/robofinder
cd robofinder
pip install .

Quick start

# Single target
robofinder -u https://example.com

# Full URLs ready to probe
robofinder -u https://example.com -c

# Pipe straight into httpx or nuclei
robofinder -u domains.txt -c -s | httpx -silent -mc 200
robofinder -u https://example.com -c -s | nuclei -t exposures/

Usage

robofinder -u URL [options]
Flag Long form Default Description
-u --url Target URL or file with one URL per line
-o --output Output to terminal (no value) or save to file (with value)
-f --format txt Output format: txt, json, or both
-c Prefix each path with the target URL (full URLs)
-p Extract URL parameters from historical paths
-t --threads 1 Number of fetch threads
-r --rate-limit 2.0 Max requests/sec sent to Archive.org
--cooldown 10 Seconds to wait between domains
-s --silent Suppress the banner
--debug Verbose debug output (goes to stderr)

Scan a list of domains

Create domains.txt:

https://example.com
https://target.org
api.example.com
robofinder -u domains.txt -o all_paths.txt

JSON output with jq

# Save to file
robofinder -u https://example.com -f json -o results

# Pipe to jq
robofinder -u https://example.com -f json | jq '.["example.com"].paths[]'

# Count paths per domain
robofinder -u domains.txt -f json | jq 'to_entries[] | "\(.key): \(.value.count) paths"'

Extract forgotten URL parameters

robofinder -u https://example.com -p
# returns parameter names found in historical paths, e.g.:
# id
# token
# redirect_url

Rate limiting

Robofinder ships with a token-bucket rate limiter so it never hammers Archive.org.

  • Default: 2 req/s — well within Archive.org's tolerance.
  • On HTTP 429: exponential back-off with automatic retry.
  • On timeout/connection errors: retries with backoff (up to 7 attempts).
  • Override with -r: use -r 0.5 to be conservative or -r 5 on a fast connection.
# Conservative mode
robofinder -u https://example.com -r 1 --cooldown 30

Changelog

See CHANGELOG.md.


License

MIT © Spix0r

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

robofinder-0.2.2.tar.gz (8.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

robofinder-0.2.2-py3-none-any.whl (9.4 kB view details)

Uploaded Python 3

File details

Details for the file robofinder-0.2.2.tar.gz.

File metadata

  • Download URL: robofinder-0.2.2.tar.gz
  • Upload date:
  • Size: 8.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.9.6

File hashes

Hashes for robofinder-0.2.2.tar.gz
Algorithm Hash digest
SHA256 2a70624e54370835b54836a8b524fe717e3726a5cfde3764d7e9d843105769fb
MD5 d19f744aa19af4473ea14b0689837cbd
BLAKE2b-256 f16c9cd9c7e791f7d94abc9a5e6a49548251ed50093abc5f122569f5525185c3

See more details on using hashes here.

File details

Details for the file robofinder-0.2.2-py3-none-any.whl.

File metadata

  • Download URL: robofinder-0.2.2-py3-none-any.whl
  • Upload date:
  • Size: 9.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.9.6

File hashes

Hashes for robofinder-0.2.2-py3-none-any.whl
Algorithm Hash digest
SHA256 8623021d2fcfee0aa87712d58794df01f6d50c08c4e8d9508a971bacbd0adc81
MD5 3a2794ce7bd8515cb4cc228382a9b4e5
BLAKE2b-256 2648813a29336231becf10c83340b4688827564984fc936731ec8687c16eec08

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page