
Extrahiert URLs aus OSINT-Archiven für Sicherheitseinblicke
Extrahiert URLs aus OSINT-Archiven für Sicherheitserkenntnisse.
Urx ist ein Kommandozeilen-Tool, das URLs aus OSINT-Archiven wie der Wayback Machine und Common Crawl sammelt. Es wurde in Rust auf Effizienz ausgelegt und nutzt asynchrone Verarbeitung, um mehrere Datenquellen schnell abzufragen. Dieses Tool vereinfacht den Prozess der Sammlung von URL-Informationen für eine bestimmte Domain und liefert einen umfassenden Datensatz, der für verschiedene Zwecke genutzt werden kann, einschließlich Sicherheitstests und -analysen.
--cdx-endpoint URL, ohne Codeänderung-H, --cookie und --user-agent gelten für jede Anfrage, die urx an das Ziel stellt (--check-status, --extract-links, --extract-js-endpoints, --expand-specs) und werden bewusst niemals an ein Archiv gesendet--match-regex / --filter-regex)--meta-*): Filterung nach erstem/letztem Capture-Datum, aufgezeichnetem MIME-Typ und aufgezeichnetem Status einheitlich über jeden Provider, nach der Sammlungurx example.com/shop schiebt den Geltungsbereich direkt in die CDX-Abfrage (url=example.com/shop*), sodass ein Teilbaum einer großen Website nur einen Bruchteil des gesamten Index kostet, statt clientseitig herausgefiltert zu werden--scope-file): die eigene *.example.com / !admin.example.com-Liste eines Programms wird wörtlich verwendet, wiederholbar und vereinigt, Ausschlüsse gewinnen immer--dedup-similar)wordlist — die Pfadsegmente und Parameternamen, aus denen das Ziel aufgebaut ist, ohne IDs, Hashes und Datumsangaben--params (das gesamte Parameterinventar des Ziels), --params-by-endpoint (welcher Endpunkt was annimmt) und --fuzz-placeholder FUZZ (eine templatisierte URL pro Parametersignatur, bereit für ffuf oder dalfox)first_seen, last_seen, mime, archive_status und digest kommen mit jeder URL zurück, die ein CDX-Archiv gemeldet hat, ohne zusätzliche Netzwerkkosten--stream): URLs werden geschrieben, sobald jeder Provider sie meldet, sodass eine Pipeline sofort mit der Arbeit beginnt, statt auf das langsamste Archiv zu warten--archive-body), sodass Seiten, die nicht mehr existieren, noch die Links preisgeben, die sie enthielten — eine Anfrage pro unterschiedlichem Body, dank CDX-Digest-Deduplizierung--extract-js-endpoints auch das archivierte JavaScript durchsuchen: Ein Bundle, das nach Build-Hash benannt ist, liefert 404, sobald die Website neu deployt wird, und das Archiv ist der einzige Ort, an dem seine API-Oberfläche noch existiert--archive-body-dir) als Korpus behalten, um nach dem zu greppen, wonach kein Link-Extraktor sucht — Entwicklerkommentare, eingebettete Zugangsdaten, interne Hostnamen — ohne zusätzliche Anfragen--expand-specs): OpenAPI 3.x-, Swagger 2.0- und GraphQL-Introspection-Dokumente, JSON oder YAML, in jede Route umgewandelt, die sie beschreiben — eine Anfrage kauft die gesamte dokumentierte Oberfläche--check-status zeichnet auch Location, Content-Length und Content-Type auf, und --check-title fügt den HTML-<title> hinzu--archived-discovery): jede unterschiedliche Version, die die Wayback Machine besitzt, sodass ein Disallow: aus 2015 noch die Pfade nennt, die die Website seither nicht mehr erwähnturx cache-Unterbefehl zum Inspizieren und Pflegen des Caches: stats, list, prune, drop <domain>, clear
cargo install urx
### Über Homebrew```bash
# https://formulae.brew.sh/formula/urx
brew install urx
git clone https://github.com/hahwul/urx.git cd urx cargo build --release
Das kompilierte Binary ist unter `target/release/urx` verfügbar.
### Aus Docker
[ghcr.io/hahwul/urx](https://github.com/hahwul/urx/pkgs/container/urx)
### Shell-Vervollständigungen