SQL Injection

Laboratorio de concientización · Netblue

SQL Injection

Cuando una aplicación mete lo que escribes directamente dentro de una consulta a la base de datos, puedes cambiar el significado de esa consulta. Es la inyección SQL. Prueba el login en modo vulnerable y observa cómo ' OR '1'='1 entra sin contraseña — luego activa las consultas parametrizadas y mira cómo deja de funcionar.

Payloads de prueba:
Consulta enviada a la base de datos

Tabla usuarios

idusuariorolpassword_hash

Cómo defenderse

Consultas parametrizadas

La defensa principal: la entrada viaja como dato, nunca como parte del código SQL. El motor la trata como texto literal.

ORM y prepared statements

Las librerías modernas parametrizan por defecto. Evita construir SQL concatenando strings a mano.

Mínimo privilegio

La cuenta de la app solo debe poder hacer lo imprescindible, para limitar el daño si algo falla.

Validación + WAF

Valida tipos y longitudes, y usa un WAF que bloquee patrones de inyección conocidos como defensa en capas.

Base de datos y login simulados en el navegador. No hay un motor SQL real detrás; la lógica reconoce el patrón clásico de inyección con fines didácticos.