CyberGlossary

Ataques y amenazas

Inyección SQL

También conocido como: SQLi

Definición

Ataque que introduce fragmentos SQL controlados por el atacante en consultas construidas a partir de entradas no confiables, permitiendo robar, modificar o comprometer toda la base de datos.

La inyección SQL (SQLi) se produce cuando una aplicación concatena entradas del usuario en sentencias SQL sin separar adecuadamente código y datos. Con cargas como ' OR 1=1-- o UNION SELECT, el atacante puede saltarse autenticación, leer tablas arbitrarias, modificar o borrar registros y, en bases mal configuradas, ejecutar comandos del sistema. Existen variantes basadas en errores, en UNION, ciegas (booleanas o por tiempo) y fuera de banda. Es una vulnerabilidad recurrente del OWASP Top 10. La defensa definitiva son las consultas parametrizadas (sentencias preparadas) con variables vinculadas, complementadas con validación de entrada, cuentas de base de datos con mínimo privilegio, ORMs reforzados y un WAF como control compensatorio.

Ejemplos

  • Un formulario de login donde usuario='admin'--' permite entrar sin contraseña.
  • Un buscador que expone la columna password_hash mediante un UNION SELECT manipulado.

Términos relacionados