Torna agli aggiornamenti
New releaseSep 19, 2026

urx v0.11.0

Estrae URL dagli archivi OSINT per approfondimenti sulla sicurezza

Condividi
Urx Logo

Estrae URL dagli archivi OSINT per ottenere informazioni di sicurezza.

Urx è uno strumento da riga di comando progettato per raccogliere URL dagli archivi OSINT, come la Wayback Machine e Common Crawl. Realizzato in Rust per garantire efficienza, sfrutta l'elaborazione asincrona per interrogare rapidamente più fonti di dati. Questo strumento semplifica il processo di raccolta di informazioni sugli URL per un dominio specificato, fornendo un set di dati completo che può essere utilizzato per vari scopi, tra cui test e analisi di sicurezza.

Funzionalità

  • Recupera URL da più fonti in parallelo (Wayback Machine, Common Crawl, OTX, Arquivo.pt)
  • Collega qualsiasi altro server di indice CDX — archivi web nazionali, un pywb privato, OutbackCDX — con --cdx-endpoint URL, senza bisogno di modificare il codice
  • Senza chiave per impostazione predefinita: Wayback, Common Crawl, OTX, Arquivo.pt e URLScan (anonimo) funzionano tutti senza una chiave API
  • Provider BeVigil: URL estratti da app Android decompilate — endpoint che nessun archivio web ha mai scansionato
  • Rotazione delle chiavi API per ogni provider con chiave (VirusTotal, URLScan, ZoomEye, GitHub, BeVigil) per mitigare i limiti di frequenza
  • Test autenticato: -H, --cookie e --user-agent si applicano a ogni richiesta che urx effettua verso il target (--check-status, --extract-links, --extract-js-endpoints, --expand-specs e le sonde robots/sitemap) e non vengono mai deliberatamente inviati a un archivio
  • Filtra i risultati per estensioni di file, pattern di sottostringhe o espressioni regolari complete (--match-regex / --filter-regex)
  • Preset predefiniti, sia per famiglia di file ("no-images", "only-js") che per interesse di sicurezza ("only-secrets", "only-backup", "only-config", "only-api")
  • Filtraggio lato archivio: inserisci codice di stato, tipo MIME e intervallo di date direttamente nella query CDX, così le catture filtrate non attraversano mai la rete
  • Filtraggio dei metadati lato client (--meta-*): filtra per data di prima/ultima cattura, tipo MIME registrato e stato registrato in modo uniforme su ogni provider, dopo la raccolta
  • Target con ambito di percorso: urx example.com/shop inserisce l'ambito direttamente nella query CDX (url=example.com/shop*), così un sottoalbero di un sito di grandi dimensioni costa una frazione dell'intero indice invece di essere filtrato lato client
  • File di ambito per bug bounty (--scope-file): la lista *.example.com / !admin.example.com di un programma usata alla lettera, ripetibile e unita, con le esclusioni che vincono sempre
  • Normalizzazione e deduplicazione degli URL: ordina i parametri di query, rimuovi le barre finali, unisci URL semanticamente identici e raggruppa i quasi-duplicati che differiscono solo per id, hash o date (--dedup-similar)
  • Supporto per più formati di output: testo semplice, JSON, JSON Lines, CSV e wordlist — i segmenti di percorso e i nomi dei parametri da cui è costruito il target, con id, hash e date esclusi
  • Viste parametri e fuzz: --params (l'inventario completo dei parametri del target), --params-by-endpoint (quale endpoint accetta cosa) e --fuzz-placeholder FUZZ (un URL templato per ogni firma di parametro, pronto per ffuf o dalfox)
  • Metadati di cattura dell'archivio: first_seen, last_seen, mime, archive_status e digest vengono restituiti con ogni URL segnalato da un archivio CDX, senza costi di rete aggiuntivi
  • Output in streaming (--stream): gli URL vengono scritti man mano che ogni provider li segnala, così una pipeline inizia a funzionare immediatamente invece di attendere l'archivio più lento
  • Supporto per input diretto da file: leggi URL direttamente da file WARC, file compressi URLTeam e file di testo
  • Output dei risultati sulla console o su file, oppure in streaming via stdin per l'integrazione nelle pipeline
  • Test degli URL:
    • Filtra e valida gli URL in base a codici di stato HTTP e pattern.
    • Estrai link aggiuntivi dagli URL raccolti — anchor, script, fogli di stile, azioni dei form, iframe, immagini, sorgenti multimediali, oggetti, embed e target di meta-refresh
    • Estrai i corpi delle risposte archiviate degli URL raccolti (--archive-body), così le pagine che non esistono più rivelano comunque i link che contenevano — una richiesta per ogni corpo distinto, grazie alla deduplicazione tramite digest CDX
    • Con --extract-js-endpoints, estrai anche il JavaScript archiviato: un bundle denominato con l'hash di build restituisce 404 nel momento in cui il sito viene ridistribuito, e l'archivio è l'unico posto dove la sua superficie API esiste ancora
    • Conserva i corpi riprodotti (--archive-body-dir) come corpus da analizzare con grep per ciò che nessun estrattore di link cerca — commenti degli sviluppatori, credenziali inline, hostname interni — senza richieste aggiuntive
    • Espandi le specifiche API (--expand-specs): documenti OpenAPI 3.x, Swagger 2.0 e introspezione GraphQL, in JSON o YAML, trasformati in ogni route che descrivono — una richiesta acquista l'intera superficie documentata
    • Metadati della risposta: --check-status registra anche Location, Content-Length e Content-Type, e --check-title aggiunge il <title> HTML
  • Scoperta di robots.txt e sitemap.xml archiviati (--archived-discovery): ogni versione distinta conservata dalla Wayback Machine, così un Disallow: del 2015 nomina ancora i percorsi che il sito ha smesso di menzionare
  • Caching e scansione incrementale:
    • Caching locale SQLite o remoto Redis per evitare di riscansionare i domini (Redis richiede una build con --features redis-cache; le build pacchettizzate lo omettono)
    • Modalità incrementale per scoprire solo i nuovi URL dall'ultima scansione
    • TTL della cache configurabile; ogni scansione elimina le voci più vecchie del doppio del TTL, e urx cache prune rimuove tutto ciò che lo supera
    • Sottocomando urx cache per ispezionare e mantenere la cache: stats, list, prune, drop <domain>, clear

Preview

Installazione

Da Cargo

# https://crates.io/crates/urx
cargo install urx

Da Homebrew

# https://formulae.brew.sh/formula/urx
brew install urx

Dal codice sorgente

git clone https://github.com/hahwul/urx.git
cd urx
cargo build --release

Il binario compilato sarà disponibile in target/release/urx.

Da Docker

ghcr.io/hahwul/urx

Categorie