R-LIN
LinkFinder
Herramienta en Python que extrae endpoints y URLs de archivos JavaScript para ampliar la superficie de ataque de una aplicación web.
Sitio oficialVolver al catálogo
RESUMEN
LinkFinder (github.com/GerbenJavado/LinkFinder) es una herramienta Python construida alrededor de una única expresión regular afinada para extraer URLs y cadenas con forma de endpoint del código fuente JavaScript, ya sea un único archivo, una página en vivo o todo un directorio de JS empaquetado/minificado. Puede correr de forma independiente contra un archivo o URL de JS, o apuntarse a un dominio para rastrear y extraer archivos JS automáticamente antes de analizarlos.
Las aplicaciones web modernas enrutan mucha más lógica a través de JavaScript del lado cliente que del HTML renderizado en servidor, así que un crawler por sí solo suele pasar por alto rutas de API, endpoints internos o rutas tras feature flags que solo aparecen como una cadena dentro de un bundle JS — el trabajo de LinkFinder es sacar a la luz esas cadenas para poder sumarlas a la superficie de ataque probada.
CASOS DE USO
Casos de uso en un engagement
- 01
Extraer endpoints de API y rutas internas referenciadas solo dentro de los bundles JavaScript de una página.
- 02
Ampliar la superficie de ataque probada de una web más allá de lo que descubre un crawler estándar a partir del HTML renderizado.
- 03
Sacar a la luz nombres de parámetros y patrones de ruta que merezca la pena atacar con más fuzzing de parámetros o endpoints.
- 04
Revisar JS minificado/empaquetado en busca de hostnames internos hardcodeados o endpoints de staging/debug.
PRIMEROS PASOS
Después de rastrear una aplicación web, para extraer de sus bundles JavaScript endpoints y rutas que nunca aparecen en el HTML renderizado ni en un crawl estándar.
- Confirma que descargar y analizar el JavaScript del lado cliente del objetivo está dentro del alcance autorizado.
- Instala LinkFinder y sus dependencias Python (jsbeautifier) desde el repo de GitHub.
- Ejecútalo contra un único archivo JS, la URL de una página en vivo, o un dominio completo para rastrear.
- Revisa los endpoints extraídos en la salida HTML/CLI en busca de rutas que valga la pena investigar más.
- Alimenta los endpoints interesantes a más enumeración (descubrimiento de parámetros, checks de auth) con otras herramientas.
python3 linkfinder.py -i https://target.example.com -d -o cliANTES DE USARLA
Qué revisar antes de lanzarla
Es un extractor basado en regex, no un parser de JavaScript — espera falsos positivos (cadenas que parecen rutas pero no lo son) y algunos fallos en código muy ofuscado, así que revisa los resultados manualmente antes de actuar sobre ellos.
Rastrear un dominio completo (-d) para reunir archivos JS genera tráfico HTTP real contra el objetivo — confirma que el volumen y la tasa de rastreo están dentro del alcance.
Un endpoint extraído no está automáticamente en alcance ni es explotable — confirma que pertenece a la aplicación probada (y no a una CDN/librería de terceros) antes de sondearlo más.