Laboratorio 01: SQL Injection (Bypass de Autenticación)
🎯 Objetivo
Lograr acceso administrativo a la plataforma sin conocer la contraseña del usuario 'admin', explotando una vulnerabilidad de Inyección SQL en el formulario de inicio de sesión.
📋 Prerrequisitos
- El entorno Docker debe estar corriendo (
docker-compose up). - Asegúrate de que el Modo Vulnerable (botón rojo) esté activo en la barra de navegación.
- Navegador web.
📝 Instrucciones Paso a Paso
Paso 1: Reconocimiento
- Navega a la página de inicio de sesión:
http://localhost:8080/login. - Intenta iniciar sesión con credenciales aleatorias (ej.
test/test) y observa el mensaje de error.
Paso 2: Detección de Vulnerabilidad
- En el campo Usuario, introduce una comilla simple
'. - En el campo Contraseña, introduce cualquier cosa.
- Si la aplicación devuelve un error de base de datos o un comportamiento inesperado (como un error 500), es probable que sea vulnerable.
Paso 3: Explotación (Bypass)
- Queremos inyectar una condición que siempre sea verdadera (
OR 1=1) y comentar el resto de la consulta para anular la verificación de contraseña. - Introduce el siguiente payload en el campo Usuario:
Nota: Asegúrate de incluir el espacio después del segundo guion.admin' OR '1'='1' -- - - Introduce cualquier valor en el campo Contraseña.
- Haz clic en "Entrar".
🏁 Verificación
- Deberías ser redirigido al Dashboard o Mi Perfil.
- Verifica que has iniciado sesión como el usuario admin.
🛡️ Preguntas de Reflexión
- ¿Por qué el uso de comillas simples rompe la consulta SQL original?
- ¿Qué hace exactamente la secuencia
-- -o#al final de la inyección?