
Nuevo releaseSep 19, 2026
urx v0.11.0
Extrae URLs de archivos OSINT para obtener información de seguridad.
Extrae URLs de archivos OSINT para obtener información de seguridad.
Urx es una herramienta de línea de comandos diseñada para recopilar URLs de archivos OSINT, como Wayback Machine y Common Crawl. Construida con Rust para mayor eficiencia, aprovecha el procesamiento asíncrono para consultar rápidamente múltiples fuentes de datos. Esta herramienta simplifica el proceso de recopilación de información de URLs para un dominio específico, proporcionando un conjunto de datos completo que puede utilizarse para diversos fines, incluidos las pruebas de seguridad y el análisis.
Características
- Obtener URLs de múltiples fuentes en paralelo (Wayback Machine, Common Crawl, OTX, Arquivo.pt)
- Conectar cualquier otro servidor de índice CDX — archivos web nacionales, un pywb privado, OutbackCDX — con
--cdx-endpoint URL, sin necesidad de cambiar el código - Sin claves por defecto: Wayback, Common Crawl, OTX, Arquivo.pt y URLScan (anónimo) funcionan sin una clave de API
- Proveedor BeVigil: URLs extraídas de aplicaciones Android desempaquetadas — endpoints que ningún archivo web ha rastreado jamás
- Rotación de claves de API para cada proveedor con clave (VirusTotal, URLScan, ZoomEye, GitHub, BeVigil) para mitigar los límites de velocidad
- Pruebas autenticadas:
-H,--cookiey--user-agentse aplican a cada solicitud que urx realiza al objetivo (--check-status,--extract-links,--extract-js-endpoints,--expand-specsy las sondasrobots/sitemap) y deliberadamente nunca se envían a un archivo - Filtrar resultados por extensiones de archivo, patrones de subcadenas o expresiones regulares completas (
--match-regex/--filter-regex) - Presets predefinidos, tanto por familia de archivos ("no-images", "only-js") como por interés de seguridad ("only-secrets", "only-backup", "only-config", "only-api")
- Filtrado del lado del archivo: introducir el código de estado, el tipo MIME y el rango de fechas en la propia consulta CDX, de modo que las capturas filtradas nunca crucen la red
- Filtrado de metadatos del lado del cliente (
--meta-*): filtrar por fecha de primera/última captura, tipo MIME registrado y estado registrado de forma uniforme en todos los proveedores, tras la recopilación - Objetivos con alcance de ruta:
urx example.com/shopintroduce el alcance en la propia consulta CDX (url=example.com/shop*), por lo que un subárbol de un sitio grande cuesta una fracción del índice completo en lugar de filtrarse del lado del cliente - Archivos de alcance de bug-bounty (
--scope-file): la propia lista*.example.com/!admin.example.comde un programa utilizada textualmente, repetible y unida, ganando siempre las exclusiones - Normalización y deduplicación de URLs: ordenar los parámetros de consulta, eliminar las barras finales, fusionar URLs semánticamente idénticas y colapsar casi-duplicados que difieren solo en ids, hashes o fechas (
--dedup-similar) - Soporte para múltiples formatos de salida: texto plano, JSON, JSON Lines, CSV y
wordlist— los segmentos de ruta y los nombres de parámetros con los que se construye el objetivo, dejando fuera ids, hashes y fechas - Vistas de parámetros y fuzz:
--params(el inventario completo de parámetros del objetivo),--params-by-endpoint(qué endpoint acepta qué) y--fuzz-placeholder FUZZ(una URL con plantilla por firma de parámetro, lista para ffuf o dalfox) - Metadatos de captura del archivo:
first_seen,last_seen,mime,archive_statusydigestse devuelven con cada URL que un archivo CDX reportó, sin coste de red adicional - Salida en streaming (
--stream): las URLs se escriben a medida que cada proveedor las reporta, por lo que un pipeline empieza a funcionar inmediatamente en lugar de esperar al archivo más lento - Soporte de entrada directa de archivos: Leer URLs directamente desde archivos WARC, archivos comprimidos de URLTeam y archivos de texto
- Enviar los resultados a la consola o a un archivo, o transmitir por stdin para la integración en pipelines
- Pruebas de URLs:
- Filtrar y validar URLs basándose en códigos de estado HTTP y patrones.
- Extraer enlaces adicionales de las URLs recopiladas — anclas, scripts, hojas de estilo, acciones de formularios, iframes, imágenes, fuentes multimedia, objetos, embeds y objetivos de meta-refresh
- Minar los cuerpos de respuesta archivados de las URLs recopiladas (
--archive-body), de modo que las páginas que ya no existen sigan entregando los enlaces que contenían — una solicitud por cuerpo distinto, gracias a la deduplicación por digest de CDX - Con
--extract-js-endpoints, minar también el JavaScript archivado: un bundle nombrado por hash de compilación devuelve 404 en el momento en que el sitio se vuelve a desplegar, y el archivo es el único lugar donde su superficie de API sigue existiendo - Conservar los cuerpos reproducidos (
--archive-body-dir) como un corpus para buscar con grep lo que ningún extractor de enlaces busca — comentarios de desarrolladores, credenciales en línea, nombres de host internos — sin solicitudes adicionales - Expandir especificaciones de API (
--expand-specs): documentos OpenAPI 3.x, Swagger 2.0 y de introspección GraphQL, en JSON o YAML, convertidos en cada ruta que describen — una solicitud compra toda la superficie documentada - Metadatos de respuesta:
--check-statustambién registraLocation,Content-LengthyContent-Type, y--check-titleañade el<title>del HTML
- Descubrimiento de robots.txt y sitemap.xml archivados (
--archived-discovery): cada versión distinta que conserva Wayback Machine, de modo que unDisallow:de 2015 sigue nombrando las rutas que el sitio ha dejado de mencionar desde entonces - Caché y escaneo incremental:
- Caché local en SQLite o remota en Redis para evitar reescanear dominios (Redis necesita una compilación con
--features redis-cache; las compilaciones empaquetadas lo omiten) - Modo incremental para descubrir solo las URLs nuevas desde el último escaneo
- TTL de caché configurable; cada escaneo elimina las entradas más antiguas que el doble del TTL, y
urx cache pruneelimina todo lo que lo supere - Subcomando
urx cachepara inspeccionar y mantener la caché:stats,list,prune,drop <domain>,clear
- Caché local en SQLite o remota en Redis para evitar reescanear dominios (Redis necesita una compilación con

Instalación
Desde Cargo
# https://crates.io/crates/urx
cargo install urx
Desde Homebrew
# https://formulae.brew.sh/formula/urx
brew install urx
Desde el código fuente
git clone https://github.com/hahwul/urx.git
cd urx
cargo build --release