URLFinder es una herramienta de descubrimiento de URL pasiva y de alta velocidad diseñada para simplificar y acelerar el descubrimiento de activos web. Es ideal para profesionales de pruebas de penetración, investigadores de seguridad y desarrolladores que buscan recopilar URLs sin exploración activa.

Características
- Fuentes pasivas seleccionadas para maximizar el descubrimiento exhaustivo de URLs.
- Admite múltiples formatos de salida (JSON, archivo, stdout).
- Optimizado para la velocidad y la eficiencia de los recursos.
- Admite STDIN/OUT para una fácil integración en flujos de trabajo existentes.
Instalación
URLFinder requiere Go 1.21. Puedes instalarlo usando el siguiente comando o descargar un binario precompilado desde la página de lanzamientos.
go install -v github.com/projectdiscovery/urlfinder/cmd/urlfinder@latest
Uso
urlfinder -h
Este comando muestra la ayuda de URLFinder. A continuación, te muestro algunos modificadores y opciones comunes.
A streamlined tool for discovering associated URLs.
Usage:
./urlfinder [flags]
Flags:
INPUT:
-d, -list string[] target domain or list of domains
SOURCE:
-s, -sources string[] specific sources for discovery (e.g., -s alienvault,commoncrawl)
-es, -exclude-sources string[] sources to exclude (e.g., -es alienvault,commoncrawl)
-all use all sources (may be slower)
FILTER:
-m, -match string[] URLs or list to match (file or comma-separated)
-f, -filter string[] URLs or list to filter (file or comma-separated)
RATE-LIMIT:
-rl, -rate-limit int max HTTP requests per second (global)
-rls, -rate-limits value per-provider HTTP request limits (e.g., -rls waybackarchive=15/m)
UPDATE:
-up, -update update URLFinder to the latest version
-duc, -disable-update-check disable automatic update checks
OUTPUT:
-o, -output string specify output file
-j, -jsonl JSONL output format
-od, -output-dir string specify output directory
-cs, -collect-sources include all sources in JSON output
CONFIGURATION:
-config string config file (default "$CONFIG/urlfinder/config.yaml")
-pc, -provider-config string provider config file (default "$CONFIG/urlfinder/provider-config.yaml")
-proxy string HTTP proxy
DEBUG:
-silent show only URLs in output
-version display URLFinder version
-v verbose output
-nc, -no-color disable colored output
-ls, -list-sources list all available sources
-stats display source statistics
OPTIMIZATION:
-timeout int timeout in seconds (default 30)
-max-time int max time in minutes for enumeration (default 10)
Ejemplos
Uso básico:
urlfinder -d tesla.com
Este comando enumera las URLs para el dominio objetivo tesla.com.
Ejemplo de ejecución:
$ urlfinder -d tesla.com
__ _____ __ _____ __
/ / / / _ \/ / / __(_)__ ___/ /__ ____
/ /_/ / , _/ /__/ _// / _ \/ _ / -_) __/
\____/_/|_/____/_/ /_/_//_/\_,_/\__/_/
projectdiscovery.io
[INF] Current urlfinder version v0.0.1 (latest)
[INF] Enumerating urls for tesla.com
https://www.tesla.com/akam/13/7e68a6e8
https://www.tesla.com/akam/13/pixel_4e07b670
https://www.tesla.com/da_dk/en/node/30788?redirect=no
https://www.tesla.com/de_at/findus/location/charger/dc6290
https://www.tesla.com/akam/13/7ade0a44
https://www.tesla.com/cs_cz/referral/teslaapp23713?redirect=no
https://www.tesla.com/da_dk/findus/location/charger/dc253
https://www.tesla.com/akam/13/pixel_76102729
https://www.tesla.com/da_dk/blog/modules//system/system.messages.js
...
[INF] Found 202435 urls for tesla.com in 2 minutes 37 seconds
Opciones de filtrado:
Usa las opciones -m
(comparar) y -f
(filtrar) para refinar los resultados según los patrones de URL.
Ejemplos:
- Incluir URLs que coinciden con patrones específicos: Para incluir solo las URLs que contienen “shop” o “model”:
urlfinder -d tesla.com -m shop,model
- Excluir URLs que coinciden con patrones específicos: Para excluir las URLs que contienen “privacy” o “terms”:
urlfinder -d tesla.com -f privacy,terms
- Comparación y filtro combinados: Para encontrar URLs que contienen “support” pero excluir aquellas con “faq”:
urlfinder -d tesla.com -m support -f faq
- Usar archivos para comparar y filtrar: Proporciona patrones en archivos:
urlfinder -d tesla.com -m include-patterns.txt -f exclude-patterns.txt
Ejemplo de salida JSONL:
Usa la bandera -j
o --jsonl
para obtener los resultados en formato JSONL (JSON Lines), donde cada línea es un objeto JSON separado. Este formato es útil para procesar salidas grandes de forma estructurada.
Ejemplo de comando:
urlfinder -d tesla.com -j
Ejemplo de salida JSONL:
{"url":"https://shop.tesla.com/product/model-s-plaid","input":"tesla.com","source":"waybackarchive"}
{"url":"https://www.tesla.com/inventory/used/ms","input":"tesla.com","source":"waybackarchive"}
{"url":"https://forums.tesla.com/discussion/101112/model-3-updates","input":"tesla.com","source":"waybackarchive"}
Cada objeto JSON contiene:
url
: La URL descubierta.input
: El dominio objetivo (ej. tesla.com).source
: La fuente de datos para el descubrimiento de la URL (ej. waybackarchive).