Wayback URL Mining: Turning Archives Into Parameter Maps
Old URLs tell you what the app used to accept. The Wayback Machine and similar indexes store paths, query keys, and occasionally authenticated-looking endpoints that vanished from the current UI but not from the server.
You are mining for parameters and forgotten routes—not for nostalgia.
Pull, then parse
Use CDX queries or community wrappers to list URLs under in-scope hosts. Filter to statuscode:200 historically if you want less junk, but keep a pass for 3xx and 403 archives too—those paths still exist as strings worth trying live.
Extract:
- Path templates:
/api/v1/...,/admin/...,/legacy/... - Query keys:
redirect,next,file,template,userId,token - File-ish endings:
.json,.xml,.asp,.action
Build a frequency table of parameter names. High-frequency keys that still appear on live forms are less exciting than rare keys that only show up in 2018 archives.
Retest live with a cool head
Archived ?id=1 does not mean IDOR today. Hit the live host with the path and parameter shape, using your own accounts and canaries. Expect permanent dead routes. Expect WAFs. Expect the interesting case: route still mounted, UI gone.
I've found debug endpoints that returned 404 on GET / but still answered on the exact archived path with an old X-Debug header. Path precision mattered.
For redirects and SSRF-shaped parameters (url, return, pdf), use only collaborator hosts you control. For file parameters, aim at harmless public files first.
Noise you should discard
Marketing UTM storms, session IDs, and cache busters waste time. Deduplicate by path + sorted parameter names, not full URLs. Drop URLs that clearly belonged to a third-party widget on a shared marketing domain unless that host is in scope.
JavaScript bundles linked from archived HTML are a second mine: old API base URLs and feature flags hide there. Fetch those snapshots too when the HTML points at app.legacy.js.
Group parameters by sink class before testing: redirectors, file/path inputs, identifiers, and template or debug flags. That order keeps you from burning the session budget on utm_source clones while a lonely template= key sits untested.
If the live app moved to a SPA, archived query keys may now ride in POST JSON or path segments. Retry the same names in those shapes before retiring the lead.
Report what still hurts
A parameter map alone is recon. Pair it with a live proof: reflected XSS on an old callback key, authorized access to /internal/reportExport, open redirect still honoring next. Cite Wayback as the discovery source in one line; paste the live request as the evidence.
Rate-limit archive downloads. The Internet Archive is a shared resource, and bulk scraping harder than you need is bad manners.
Historical URLs shrink the search space. They do not replace testing the live application with authenticated sessions and current routing.