Retour aux mises à jour
New releaseSep 19, 2026

urx v0.11.0

Extrait des URL d'archives OSINT pour des informations de sécurité

Partager
Urx Logo

Extrait les URL des archives OSINT pour des analyses de sécurité.

Urx est un outil en ligne de commande conçu pour collecter des URL à partir d'archives OSINT, telles que la Wayback Machine et Common Crawl. Développé en Rust pour sa performance, il exploite le traitement asynchrone pour interroger rapidement de multiples sources de données. Cet outil simplifie le processus de collecte d'informations sur les URL pour un domaine donné, en fournissant un ensemble de données complet pouvant servir à diverses fins, notamment les tests et l'analyse de sécurité.

Fonctionnalités

  • Récupérer des URL depuis plusieurs sources en parallèle (Wayback Machine, Common Crawl, OTX, Arquivo.pt)
  • Brancher n'importe quel autre serveur d'index CDX — archives web nationales, un pywb privé, OutbackCDX — avec --cdx-endpoint URL, sans modification de code
  • Sans clé par défaut : Wayback, Common Crawl, OTX, Arquivo.pt et URLScan (anonyme) fonctionnent tous sans clé d'API
  • Fournisseur BeVigil : URL extraites d'applications Android décompressées — des endpoints qu'aucune archive web n'a jamais explorés
  • Rotation des clés d'API pour chaque fournisseur nécessitant une clé (VirusTotal, URLScan, ZoomEye, GitHub, BeVigil) afin d'atténuer les limites de débit
  • Tests authentifiés : -H, --cookie et --user-agent s'appliquent à chaque requête qu'urx envoie à la cible (--check-status, --extract-links, --extract-js-endpoints, --expand-specs, ainsi que les sondes robots/sitemap) et ne sont délibérément jamais envoyés à une archive
  • Filtrer les résultats par extensions de fichiers, motifs de sous-chaînes ou expressions régulières complètes (--match-regex / --filter-regex)
  • Préréglages prédéfinis, à la fois par famille de fichiers ("no-images", "only-js") et par intérêt de sécurité ("only-secrets", "only-backup", "only-config", "only-api")
  • Filtrage côté archive : injecter le code de statut, le type MIME et la plage de dates directement dans la requête CDX, afin que les captures filtrées ne traversent jamais le réseau
  • Filtrage des métadonnées côté client (--meta-*) : filtrer sur la date de première/dernière capture, le type MIME enregistré et le statut enregistré de manière uniforme sur tous les fournisseurs, après la collecte
  • Cibles limitées à un chemin : urx example.com/shop injecte la portée directement dans la requête CDX (url=example.com/shop*), de sorte qu'un sous-arbre d'un grand site coûte une fraction de l'index entier au lieu d'être filtré côté client
  • Fichiers de portée de bug bounty (--scope-file) : la propre liste *.example.com / !admin.example.com d'un programme utilisée telle quelle, répétable et unie, les exclusions l'emportant toujours
  • Normalisation et déduplication des URL : trier les paramètres de requête, supprimer les barres obliques finales, fusionner les URL sémantiquement identiques et regrouper les quasi-doublons qui ne diffèrent que par des ids, des hachages ou des dates (--dedup-similar)
  • Prise en charge de plusieurs formats de sortie : texte brut, JSON, JSON Lines, CSV et wordlist — les segments de chemin et les noms de paramètres à partir desquels la cible est construite, en laissant de côté les ids, les hachages et les dates
  • Vues paramètres et fuzz : --params (l'inventaire complet des paramètres de la cible), --params-by-endpoint (quel endpoint accepte quoi) et --fuzz-placeholder FUZZ (une URL modélisée par signature de paramètre, prête pour ffuf ou dalfox)
  • Métadonnées de capture d'archive : first_seen, last_seen, mime, archive_status et digest sont renvoyés avec chaque URL signalée par une archive CDX, sans coût réseau supplémentaire
  • Sortie en flux (--stream) : les URL sont écrites au fur et à mesure que chaque fournisseur les signale, de sorte qu'un pipeline commence à fonctionner immédiatement au lieu d'attendre l'archive la plus lente
  • Prise en charge de l'entrée directe de fichiers : lire les URL directement depuis des fichiers WARC, des fichiers compressés URLTeam et des fichiers texte
  • Sortir les résultats vers la console ou un fichier, ou diffuser via stdin pour l'intégration dans un pipeline
  • Test des URL :
    • Filtrer et valider les URL en fonction des codes de statut HTTP et des motifs.
    • Extraire des liens supplémentaires à partir des URL collectées — ancres, scripts, feuilles de style, actions de formulaires, iframes, images, sources multimédias, objets, embeds et cibles meta-refresh
    • Explorer les corps de réponse archivés des URL collectées (--archive-body), afin que les pages qui n'existent plus livrent encore les liens qu'elles contenaient — une requête par corps distinct, grâce à la déduplication par digest CDX
    • Avec --extract-js-endpoints, explorer aussi le JavaScript archivé : un bundle nommé par un hachage de build renvoie un 404 dès que le site est redéployé, et l'archive est le seul endroit où sa surface d'API existe encore
    • Conserver les corps rejoués (--archive-body-dir) comme corpus à fouiller pour ce qu'aucun extracteur de liens ne recherche — commentaires de développeurs, identifiants en ligne, noms d'hôtes internes — sans requêtes supplémentaires
    • Développer les spécifications d'API (--expand-specs) : documents OpenAPI 3.x, Swagger 2.0 et introspection GraphQL, JSON ou YAML, transformés en toutes les routes qu'ils décrivent — une requête achète toute la surface documentée
    • Métadonnées de réponse : --check-status enregistre aussi Location, Content-Length et Content-Type, et --check-title ajoute le <title> HTML
  • Découverte des robots.txt et sitemap.xml archivés (--archived-discovery) : chaque version distincte détenue par la Wayback Machine, de sorte qu'un Disallow: de 2015 nomme encore les chemins que le site a depuis cessé de mentionner
  • Mise en cache et analyse incrémentale :
    • Mise en cache locale SQLite ou distante Redis pour éviter de réanalyser les domaines (Redis nécessite une compilation avec --features redis-cache ; les builds packagés l'excluent)
    • Mode incrémental pour ne découvrir que les nouvelles URL depuis la dernière analyse
    • TTL de cache configurable ; chaque analyse balaie les entrées plus anciennes que le double du TTL, et urx cache prune supprime tout ce qui le dépasse
    • Sous-commande urx cache pour inspecter et maintenir le cache : stats, list, prune, drop <domain>, clear

Preview

Installation

Depuis Cargo

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

Depuis Homebrew

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

Depuis la source

Catégories