Saltar al contenido
OPS // KITitspentest.sh

R-JSL

jsluice

Librería y CLI en Go que analiza JavaScript como AST para extraer URLs, endpoints y secretos con más precisión que los extractores basados en regex.

Sitio oficialVolver al catálogo

RESUMEN

jsluice (github.com/BishopFox/jsluice), escrito en Go por Tom Hudson de Bishop Fox, analiza código JavaScript con go-tree-sitter para construir un árbol de sintaxis abstracta real en vez de escanear texto con expresiones regulares. Eso le permite entender contexto que los extractores por regex pasan por alto — por ejemplo que una cadena se asigna a document.location, se pasa como primer argumento a fetch(), o se fija como valor dentro de un literal de objeto que parece la configuración de un cliente de API — en vez de solo hacer match con un patrón https:// donde aparezca.

Maneja la concatenación de cadenas rastreándola a través del AST y sustituye cualquier expresión que no pueda resolver estáticamente con un placeholder (EXPR), así que una URL construida a partir de varias variables se recupera parcialmente en vez de descartarse en silencio. Más allá de URLs, su modo de secretos incluye definiciones de patrones para formatos comunes de API keys y tokens, y su modo query expone consultas tree-sitter en crudo para extracción personalizada según los patrones JS de una app concreta.

CASOS DE USO

Casos de uso en un engagement

  • 01

    Extraer endpoints de API ocultos de JavaScript grande, empaquetado o minificado durante el recon.

  • 02

    Encontrar API keys, tokens o credenciales hardcodeadas dejadas en código del lado cliente.

  • 03

    Reducir falsos positivos frente a escáneres de secretos JS basados en grep/regex en apps muy empaquetadas.

  • 04

    Escribir consultas tree-sitter personalizadas (modo query) para extraer patrones específicos de la app que regex no puede expresar.

PRIMEROS PASOS

Cuando un objetivo entrega JavaScript grande o empaquetado que vale la pena minar en busca de endpoints ocultos, API keys o URLs internas durante el recon.

  1. Recolecta los archivos o bundles de JavaScript en alcance, vía crawling, URLs archivadas o descarga directa.
  2. Instala jsluice con go install.
  3. Ejecútalo en modo urls contra un archivo o un directorio de JS para extraer endpoints.
  4. Ejecútalo en modo secrets para revisar los mismos archivos en busca de patrones conocidos de API keys/tokens.
  5. Verifica a mano cualquier endpoint o secreto marcado antes de tratarlo como un hallazgo real.
jsluice urls app.bundle.js

ANTES DE USARLA

Qué revisar antes de lanzarla

Reporta URLs y secretos candidatos a partir de análisis estático, no hallazgos confirmados en vivo — un endpoint extraído puede ser código muerto, y un 'secreto' extraído puede ser un valor de prueba o placeholder.

Una API key o credencial descubierta es dato sensible desde el momento en que se extrae — manéjala según las reglas de evidencia del engagement en vez de pegarla en notas sueltas o tickets.

Solo ve lo que está estáticamente presente en el código JavaScript; URLs o secretos construidos en tiempo de ejecución u obtenidos dinámicamente de otro endpoint no aparecerán.

SIGUE EXPLORANDO

Ver toda la fase →