Tu IP:Sin datos

·

Tu estado: Sin datos

Ir al contenido principal

¿Qué es la inyección de lenguaje de consulta estructurado (SQL)?

La inyección SQL (SQLi) es una vulnerabilidad que permite a un atacante manipular las consultas que una aplicación envía a su base de datos. Aprovechando entradas no validadas, el ciberdelincuente puede leer, modificar o borrar información confidencial, suplantar cuentas de usuario o desestabilizar sistemas completos. En esta guía verás qué es la SQLi, cómo funciona, sus tipos más frecuentes, ejemplos reales y medidas prácticas para mitigarla.

13 abr 2026

11 min de lectura

¿Qué es la inyección de lenguaje de consulta estructurado (SQL)?

¿Qué es SQL en español?

Definición de SQL

SQL son las siglas en inglés de Structured Query Language, que podemos traducir como “lenguaje de consulta estructurado”. Estamos ante un lenguaje de programación que sirve para que los sistemas de gestión de bases de datos (DBMS) sean más eficientes y puedan atender las solicitudes de los usuarios, entregándoles la información que están buscando en una base de datos.

¿Es el código SQL algo nuevo? No, el lenguaje SQL se desarrolló ya en la década de 1970 y fue una revolución porque mejoró notablemente la gestión de bases de datos. Recuerda que en estas siglas, se encuentra la palabra “query” que en español significa consulta (que en la actualidad también es llamada “keyword”).

Gracias al lenguaje SQL, cuando una persona teclea una palabra clave en el buscador, esta se relaciona con conceptos reconocibles en inglés y otras lenguas. Las solicitudes SQL se tramitan de la siguiente manera:

  1. 1.Un cibernauta hace una consulta en su buscador (que en definitiva es una gran base de datos).
  2. 2.Se crea una cadena SQL que contiene dicha keyword.
  3. 3.La cadena SQL llega a la base de datos, donde entra en escena el sistema de gestión DBMS.
  4. 4.DBMS reconoce comandos de codificación y relaciona la palabra clave con la información relevante.
  5. 5.En pantalla el usuario puede leer los datos que estaba buscando.
Qué es la inyección SQL

¿Qué es la inyección SQL?

Definición de inyección SQL

La inyección SQL es la introducción de comandos SQL en un sitio web determinado. Resulta muy peligroso porque los hackers planean inyecciones SQL para introducir trozos de código malicioso en los dispositivos de terceras personas, de modo que desbloquean el acceso a información personal, archivos privados o las contraseñas guardadas en la base de datos.

En otras palabras, se trata de una forma de engañar a un sitio web a través de cadenas SQL que contienen el código malicioso de los hackers. El sistema de gestión de datos DBMS leerá el código inyectado como si fuera legítimo, de modo que será procesado y ejecutado.

Cómo funciona una inyección SQL paso a paso

Una SQL sigue una serie de pasos que debes conocer para identificar el problema y prevenir los daños.

  1. 1.La aplicación recibe una entrada del usuario (formulario, campo de búsqueda, URL).
  2. 2.Esa entrada no se valida ni se sanea correctamente.
  3. 3.El atacante introduce caracteres y comandos SQL en la entrada.
  4. 4.La aplicación concatena esa entrada en una consulta SQL dinámica.
  5. 5.La base de datos ejecuta la consulta manipulada y expone o altera datos.
  6. 6.El atacante exfiltra información, modifica registros o crea persistencia.

Hemos resumido la información para que apliques esta checklist de prevención:

  • Validación estricta de entradas y saneamiento según contexto.
  • Consultas parametrizadas/prepared statements en todo acceso a la DB.
  • Principio de mínimo privilegio para usuarios y roles de la base de datos.
  • Evitar concatenación de strings al construir queries.
  • Gestión segura de errores (sin mensajes de SQL en producción).
  • WAF y reglas específicas para patrones de SQLi.
  • Monitorización y alertas de anomalías en consultas y tiempos de respuesta.

Una vez explicado el funcionamiento de las inyecciones SQL, toca ver cuáles son los riesgos que suponen.

Problemas que causan las inyecciones SQL

Estos son algunos ejemplos de las consecuencias de una ataque informático que emplea inyección SQL:

  • Robo de nombres de usuarios y contraseñas. El código corrompido puede solicitar los datos de los clientes de una tienda online o las claves secretas de los perfiles de la plataforma.
  • Vulneración de la privacidad de los usuarios. Los chats en vivo, direcciones de correo electrónico o el número de teléfono podrían quedar al descubierto por culpa de las inyecciones SQL.
  • Filtraciones de datos del formulario de suscripción. Todos los datos que se introducen pueden terminar en las manos menos indicadas.
  • Consultar tu saldo y realizar transferencias no autorizadas. Si el ataque de código SQL tiene en el punto de mira un portal de banca electrónica, tus datos bancarios estarán en peligro.

Después Una inyección SQL puede derivar en robo de credenciales y espionaje del tráfico, especialmente si el atacante combina técnicas como un ataque man-in-the-middle o el uso de un sniffer. Si sospechas de una filtración, comprueba si tus datos han aparecido expuestos y toma medidas con esta guía: cómo saber si mis datos se han filtrado.

¿Qué pueden hacer los ataques de inyección SQL?

Un ciberataque de inyección SQL causa graves daños en la seguridad y la privacidad de un sitio web. Es una manera muy efectiva de introducirse en su base de datos, lo que no augura nada bueno.

Pero ¿cuál es el objetivo del delincuente informático que diseña un ataque de estas características? A veces, el daño simplemente consiste en la eliminación de algunos datos para desatar el caos en la estructura web. En otras ocasiones, el ataque se centra en la edición de datos para introducir textos que no son propios de ese dominio o extraer información confidencial, como en el caso de las entidades financieras.

No obstante, las estadísticas muestran que este modus operandi acostumbra a usarse para robar los datos de las cuentas online de los usuarios registrados en un sitio web. Un ciberdelincuente no quedará satisfecho solo con el robo de tu información confidencial, con frecuencia estos datos se venden en la web oscura. Ahora que ya sabes qué es SQL y para qué sirve, aprende a diferenciar los tipos de “inyecciones” de los que podrías ser víctima.

3 tipos de inyecciones SQL

Las inyecciones SQL se clasifican en función del método que utilizan los delincuentes para acceder a la base de datos que no les pertenece. Compara sus características y aprende a identificarlos para prevenir encontrarte con uno de estos ciberataques.

SQLi In-Band (SQLi clásico)

Los ataques de inyección de SQLi In-Band son los más comunes, por eso también reciben el nombre de SQLi clásico. Esta popularidad se debe en parte por su sencillez a la hora de ser diseñados. Asimismo, el ataque y la recolección de datos se hace a través del mismo canal, lo que simplifica enormemente el proceso.

Dentro de esta categoría, debemos señalar otros dos tipos de ataques SQLi clásicos: SQLi basado en errores y SQLi basado en la unión. A continuación, puedes leer todos los detalles.

  • SQLi basado en errores: funcionan gracias a los errores que se producen en la base de datos, en la cual puede haber numerosos datos confidenciales. Con ese código malicioso que han introducido, pueden modificar la consulta SQL para una mayor vulneración.
  • SQLi basado en la unión: recibe su nombre del operador UNION que sirve para combinar los resultados de varias declaraciones SELECT (con una sola salida), que finalmente configuran una respuesta que se envía junto al HTTP.

SQLi Blind

Este tipo de ataque de inyección SQL se dice que es ciego porque el atacante no puede ver directamente las respuestas de las consultas realizadas. Entonces, ¿por qué se lleva a cabo este ciberdelito ? Porque sí que es posible observar el comportamiento de una app y plagiar su estructura.

Una vez explicado el significado de SQL Blind, conviene diferenciar las dos formas que puede adoptar:

  • SQLi Blind basado en Boolean (basado en contenido): el atacante envía varias consultas SQL que se traducen en una respuesta de SÍ o NO.
  • SQLi Blind basado en el tiempo: el delincuente envía consultas SQL a la base de datos, pero hay una espera determinada antes de responder. Si accedes a un sitio web que carga demasiado lento, quizá se esté produciendo una inyección SQL.

Out-of-band SQLi

El último tipo de ataque de inyección SQLi que vamos a definir es el Out-of-band SQLi. Se trata de una explotación que permite que los delincuentes filtren datos confidenciales a través de canales DNS o HTTP.

Ejemplos de inyección SQL

Anteriormente, mencionamos el comando UNION, aunque ahora entraremos en detalles. Este comando sirve para agregar consultas adicionales a la que ya ha realizado el usuario, por lo tanto no son legítimas. Cuando se entregue la información solicitada por el cibernauta, se incluirán resultados relacionados con la consulta no autorizada del código SQL extra.

En esta lista de ejemplos inyecciones SQL, no podíamos dejar de mencionar las empresas (reconocidas a nivel mundial) que fueron víctimas de estas prácticas delictivas:

  • ResumeLooters (2024): un grupo de ciberdelincuentes comprometió al menos 65 portales de empleo y sitios de venta minorista en Asia-Pacífico combinando inyección SQL y ataques XSS. El resultado fue el robo de datos personales (nombres, correos electrónicos y CV) de más de dos millones de personas en busca de empleo, que posteriormente se pusieron a la venta en foros clandestinos.
  • MOVEit Transfer (2023): el grupo de ransomware CL0P explotó una vulnerabilidad de inyección SQL de día cero (CVE-2023-34362) en el software de transferencia de archivos MOVEit. Sin necesidad de autenticación, los atacantes accedieron a bases de datos de más de 2.700 organizaciones (entre ellas agencias gubernamentales de Estados Unidos, el Reino Unido y Alemania) y comprometieron los datos de aproximadamente 60 millones de personas. Fue considerado el mayor ciberataque de 2023.
  • Fornite (2019): este popular videojuego online estaba operando con una vulnerabilidad de inyección SQL que permitía que los delincuentes accedieran a las cuentas de los usuarios. Esta vulnerabilidad se corrigió en 2019.
  • Cisco (2018): Cisco Prime License Manager también operaba con una vulnerabilidad que permitía que personas no autorizadas accedieran al sistema que otorgaba las licencias. Por supuesto, ya se ha corregido este error en el código SQL.
  • Tesla (2014): expertos en seguridad aseguraron en el año 2014 que podían sortear la protección del sitio web de la marca a través de una inyección SQL.

¿Qué puede robar un hacker de código SQL?

Un sitio web desprotegido es una mina para los ciberdelincuentes especializados en inyecciones SQL. Casi todo lo que forme parte de la base de datos, podría terminar en las manos de los hackers o venderse a terceras partes.

Los datos de los clientes de una tienda online estarán en peligro, ya que quizá terminen mostrándose en un catálogo como si fueran los productos a la venta. Mira el siguiente vídeo para entender mejor lo que pueden robar los hackers de código SQL (tienes disponibles los subtítulos en español).

Prevención y protección ante los ataques de inyección SQL

Lee con atención estos consejos para prevenir ser la víctima de ataques informáticos de inyección SQL:

  • Segrega tus datos. No guardes todos los detalles de tus documentos de identidad o certificados en un mismo lugar, aunque sea en la nube. Por eso es peligroso mantener los datos de la cartelera de clientes en línea en una única base de datos, en especial si no se encripta con tecnología de última generación.
  • Evita diseñar un sitio web con plantillas. Si la estructura de tu página sigue el mismo patrón, en el que solo hay huecos en blanco esperando a ser rellenados con palabras clave, un hacker podría editar el código SQL en un abrir y cerrar de ojos. No permitas que se induzcan comandos que no deseas.
  • Validación de entradas. Debe estar integrada en el sitio web y establecer una lista de términos válidos que se irá haciendo más grande cuando se introduzcan más elementos a la base de datos. Si la consulta que se emite no corresponde a ningún dato registrado, no se ejecutará el código y aparecerá en pantalla el mensaje “sin resultados”.

Preguntas frecuentes

Protege tus dispositivos de los ataques SQLi.

Conecta hasta 10 dispositivos con una sola cuenta de NordVPN.

También disponible en: English,Suomi,Français,日本語,Nederlands,Polski,Português Brasileiro,Türkçe.

Laura Oliveira Sánchez | NordVPN

Laura Oliveira Sánchez

Laura es una copywriter de español que creció sabiendo lo importante que es la seguridad porque su hermano mayor solía robar sus cosas. Ahora es consciente del "Gran Hermano" y de la importancia de la ciberseguridad. Por eso escribe sobre privacidad y seguridad online para España y Latinoamérica. También cree que la tecnología está ahí para que nuestras vidas sean más fáciles, no más complicadas.