Saltar al contenido
OPS // KITitspentest.sh

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.

  1. Confirma que descargar y analizar el JavaScript del lado cliente del objetivo está dentro del alcance autorizado.
  2. Instala LinkFinder y sus dependencias Python (jsbeautifier) desde el repo de GitHub.
  3. Ejecútalo contra un único archivo JS, la URL de una página en vivo, o un dominio completo para rastrear.
  4. Revisa los endpoints extraídos en la salida HTML/CLI en busca de rutas que valga la pena investigar más.
  5. 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 cli

ANTES 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.

SIGUE EXPLORANDO

Ver toda la fase →