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 | httpx -silent -mc 200
robofinder -u https://example.com -c | 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.0.tar.gz (8.2 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.0-py3-none-any.whl (9.4 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: robofinder-0.2.0.tar.gz
  • Upload date:
  • Size: 8.2 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.0.tar.gz
Algorithm Hash digest
SHA256 0c0ecb5d7f5690cd6e5ea91bd38ff4e7b8a5515a77e6842ce435a93ba1b80e6a
MD5 12f006806019bd23ff80aaa49ee92c74
BLAKE2b-256 34669ef166df59f9cfc0cbcbbde775ebed524b0f879c441d77a1e4709891d687

See more details on using hashes here.

File details

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

File metadata

  • Download URL: robofinder-0.2.0-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.0-py3-none-any.whl
Algorithm Hash digest
SHA256 6ebb7978f7eeffcc2e0a00e01d5d31ba7800a8f6543c4e53ae46e035efdd597c
MD5 bc168618179b049f24b2d669438057e8
BLAKE2b-256 6cf9d7a247ce25a4aa8ee60e53d1dd818886bc63a21f22f456174660c68eddc3

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