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
Inyección NoSQL
Inyección contra bases documentales, clave-valor o de grafos donde el atacante introduce operadores o JavaScript en los objetos de consulta.
Command Injection
Command Injection — definition coming soon.
Parameterized Query
Parameterized Query — definition coming soon.
Input Validation
Input Validation — definition coming soon.
OWASP Top 10
OWASP Top 10 — definition coming soon.
Cortafuegos de aplicaciones web (WAF)
Proxy inverso que inspecciona tráfico HTTP/HTTPS para bloquear ataques web como inyección SQL, XSS o abuso de bots antes de llegar a la aplicación.