¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!
-CVE-2025-55182 — Escáner basado en navegador que audita repositorios de GitHub en busca de vulnerabilidades conocidas en dependencias de React y Next.js, revisando todas las ramas y admitiendo repositorios privados mediante PAT. | Kitploit
Escáner basado en navegador que audita repositorios de GitHub en busca de vulnerabilidades conocidas en dependencias de React y Next.js, revisando todas las ramas y admitiendo repositorios privados mediante PAT.
Un navegador web moderno (Chrome, Firefox, Edge, etc.)
Acceso a GitHub (opcional: Personal Access Token para repositorios privados)
Paso a paso
1. Abrir la consola del navegador
Acceda a cualquier página de GitHub (ej.: https://github.com)
Abra el DevTools:
Chrome/Edge: F12 o Ctrl+Shift+I (Windows) / Cmd+Option+I (Mac)
Firefox: F12 o Ctrl+Shift+K (Windows) / Cmd+Option+K (Mac)
Vaya a la pestaña Console
2. Copiar y ejecutar el script
Abra el archivo main.js
Copie todo el contenido del archivo
Péguelo en la consola del navegador
Pulse Enter para ejecutarlo
3. Configurar el escaneo
El script hará una serie de preguntas interactivas:
3.1. Autenticación (primera pregunta)
root@kitploit:~
🔐 Scan private repos too?
OK = Enter PAT
Cancel = Public only
OK: Se le solicitará introducir un Personal Access Token (PAT) de GitHub
Permite escanear repositorios privados
Necesario para acceder a organizaciones
Cancel: Solo se escanearán repositorios públicos
Cómo crear un PAT:
Acceda a: https://github.com/settings/tokens
Haga clic en "Generate new token" → "Generate new token (classic)"
Asigne un nombre descriptivo
Seleccione el alcance repo (acceso completo a repositorios)
Haga clic en "Generate token"
Copie el token inmediatamente (no se volverá a mostrar)
3.2. Alcance del escaneo (si está autenticado)
root@kitploit:~
🔍 What do you want to scan?
OK = Organizations
Cancel = User Profile
OK: Escanear organizaciones
Cancel: Escanear solo el perfil del usuario
3.3. Selección de organizaciones (si eligió Organizations)
root@kitploit:~
🏢 Scan all organizations?
OK = All organizations
Cancel = Single organization
Opción A - Todas las organizaciones (OK):
El script buscará automáticamente todas las organizaciones del usuario autenticado
Escaneará todos los repositorios de todas las organizaciones
Opción B - Una organización específica (Cancel):
Se le solicitará introducir la URL o el nombre de la organización:
root@kitploit:~
🔗 Enter organization URL or name:
Example: github.com/my-org or my-org
Formatos aceptados:
github.com/minha-org
https://github.com/minha-org
minha-org (solo el nombre)
3.4. Perfil del usuario (si no está autenticado o eligió Profile)
Si se encuentra en una página de perfil de GitHub, el script lo detectará automáticamente
De lo contrario, se le solicitará:
root@kitploit:~
Enter GitHub username:
📊 Funcionalidades
✨ Verificación por ramas
El script verifica todas las ramas de cada repositorio, no solo la rama predeterminada. Esto garantiza que se detecten vulnerabilidades en ramas de desarrollo, staging u otras ramas activas.
🏢 Soporte para organizaciones
Escanea repositorios de organizaciones de GitHub
Opción de escanear todas las organizaciones o una específica
Admite la introducción de la URL o el nombre de la organización
🔒 Acceso a repositorios privados
Con un Personal Access Token válido, el script puede:
Acceder a repositorios privados
Escanear organizaciones privadas
Verificar ramas de repositorios privados
📈 Resultados
Tras la ejecución, el script mostrará:
Tabla de resultados
Una tabla en la consola que muestra:
Repo: Nombre del repositorio
Branch: Nombre de la rama verificada
Next: Versión de Next.js (si está presente)
React: Versión de React (si está presente)
ReactDOM: Versión de react-dom (si está presente)
RSCWebpack: Versión de react-server-dom-webpack (si está presente)
RSCParcel: Versión de react-server-dom-parcel (si está presente)
RSCTurbopack: Versión de react-server-dom-turbopack (si está presente)
Status: Estado de la vulnerabilidad
✅ Safe: Sin vulnerabilidades detectadas
⚠️ CVE-XXXX-XXXXX: Vulnerabilidad encontrada
Resumen
root@kitploit:~
📊 Summary:
Total repos: 15
Branches scanned: 23
With package.json: 20
Skipped: 3 (no package.json)
⚠️ 5 vulnerable repo(s) found!
o
root@kitploit:~
✅ No vulnerabilities found!
⚙️ Configuración técnica
Retardo entre solicitudes API: 200ms (para evitar rate limiting)
Retardo entre escaneos: 30ms
Resultados por página: 100 elementos
Soporte para repositorios privados: Sí (con PAT)
Verificación de ramas: Todas las ramas de cada repositorio
🔧 Solución de problemas
Error: "Token invalid"
Verifique que el token se haya copiado correctamente
Asegúrese de que el token tiene el alcance repo
Verifique que el token no haya expirado
Error: "No repositories found"
Verifique que el usuario/organización exista
Si está escaneando organizaciones, verifique que tenga acceso
Verifique que haya repositorios en el perfil/organización
Error: "No organizations found"
Verifique que esté autenticado con un token válido
Asegúrese de que forma parte de organizaciones
El token debe tener permisos para acceder a organizaciones
Escaneo muy lento
El script introduce retardos intencionados para evitar rate limiting
Los repositorios con muchas ramas tardarán más
Las organizaciones con muchos repositorios tardarán más
📝 Notas importantes
Rate Limiting: El script respeta los límites de la API de GitHub con retardos automáticos
Privacidad: El token se usa solo localmente en el navegador, no se envía a servidores externos
Precisión: El escáner verifica únicamente el package.json en la raíz del repositorio
Ramas: Se verifican todas las ramas, pero solo se reportan aquellas con package.json
Versiones: El escáner detecta versiones vulnerables según las definiciones de CVE
🛡️ Seguridad
El script se ejecuta completamente en el navegador (client-side)
Ningún dato se envía a servidores externos
El Personal Access Token se usa únicamente para solicitudes a la API de GitHub
Se recomienda usar tokens con los alcances mínimos necesarios
📄 Licencia
MIT License
🔄 Versión
3.0.0
Desarrollado para detectar vulnerabilidades de seguridad en proyectos React y Next.js