Skip to content
Vol. 1 · Ed. 2026
CyberGlossary
Entry № 1207

Inyección SQL

Revisado porCybersecurity entrepreneur & security researcher

¿Qué es Inyección SQL?

Inyección SQLAtaque de inyección de código que incrusta SQL controlado por el atacante en una consulta a la base de datos para leer, modificar o destruir datos.


La inyección SQL (SQLi) explota aplicaciones que concatenan entrada no confiable en sentencias SQL en lugar de usar consultas parametrizadas. Al inyectar comillas, comentarios o cláusulas UNION, el atacante reescribe la consulta prevista para volcar tablas, eludir la autenticación, escalar privilegios o ejecutar comandos en la base de datos. Las variantes incluyen la clásica in-band, basada en errores, ciega booleana o basada en tiempo (que infiere los datos bit a bit a partir de las respuestas o de los retrasos en la respuesta) y de segundo orden, en la que una entrada almacenada se dispara cuando se reutiliza más tarde.

La SQLi tiene décadas de antigüedad y, sin embargo, sigue siendo devastadora. CVE-2023-34362, una inyección SQL de día cero en Progress MOVEit Transfer, fue explotada desde finales de mayo de 2023 por el grupo de ransomware Cl0p: atacantes no autenticados inyectaron SQL para desplegar el web shell LEMURLOOT y exfiltrar el contenido de las bases de datos, con un efecto en cascada sobre miles de organizaciones aguas abajo. La brecha de TalkTalk de 2015, que expuso unos 157.000 registros de clientes, fue igualmente una inyección SQL contra una página web heredada. La SQLi se sitúa dentro del OWASP Top 10 A03:2021 (Inyección).

La defensa principal son las consultas parametrizadas / sentencias preparadas, que separan el código de los datos para que la entrada nunca pueda alterar la estructura de la consulta. Refuérzala con frameworks ORM usados de forma segura, validación de entrada con listas de permitidos, cuentas de base de datos con privilegios mínimos (sin derechos de DBA para los inicios de sesión de la aplicación), higiene de los procedimientos almacenados y un WAF como defensa en profundidad. El escape manual por sí solo es frágil y desaconsejado.

flowchart TD
  U[Entrada no confiable] --> C{¿Cómo se construye la consulta?}
  C -->|Concatenación de cadenas| I["' OR 1=1 -- inyectado en el SQL"]
  I --> DB[(La base de datos ejecuta el SQL del atacante)]
  DB --> X[Volcado de datos / elusión de autenticación]
  C -->|Consulta parametrizada| S[Entrada ligada como dato, no como código]
  S --> OK[Estructura de la consulta preservada — segura]

Ejemplos

  1. 01

    Un formulario de inicio de sesión donde introducir ' OR '1'='1 devuelve la primera fila de usuarios y omite la autenticación.

  2. 02

    Un endpoint de informes en el que un parámetro manipulado lanza un UNION SELECT para extraer hashes de contraseñas.

Preguntas frecuentes

¿Qué es Inyección SQL?

Ataque de inyección de código que incrusta SQL controlado por el atacante en una consulta a la base de datos para leer, modificar o destruir datos. Pertenece a la categoría de Ataques y amenazas en ciberseguridad.

¿Qué significa Inyección SQL?

Ataque de inyección de código que incrusta SQL controlado por el atacante en una consulta a la base de datos para leer, modificar o destruir datos.

¿Cómo defenderse de Inyección SQL?

Las defensas contra Inyección SQL combinan habitualmente controles técnicos y prácticas operativas, como se detalla en la definición.

¿Cuáles son otros nombres para Inyección SQL?

Nombres alternativos comunes: SQLi.

Términos relacionados

Véase también