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.1.tar.gz (8.3 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.1-py3-none-any.whl (9.4 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: robofinder-0.2.1.tar.gz
  • Upload date:
  • Size: 8.3 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.1.tar.gz
Algorithm Hash digest
SHA256 f864d91d34be9889254fdc55c2b105108e424ed5ffaf37ec317468a3ce5700bd
MD5 535971e16ac577d450cd655c99acbcd6
BLAKE2b-256 0b5838e15d53a9a613190d82a7b8cc968923d07e14cfbe04f0f3980ef0c279da

See more details on using hashes here.

File details

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

File metadata

  • Download URL: robofinder-0.2.1-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.1-py3-none-any.whl
Algorithm Hash digest
SHA256 70d4297b0f906b6d768ee06e5632ed7e14b4a421bebdcd935deacfe5b12b9b03
MD5 5318800c1f56831336c909676b71b92f
BLAKE2b-256 f10e9615c96c0873ce64fe255a4993edc2e9e9f4bf561c91c1efe67022f2ea18

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