Las cookies nos permiten ofrecer nuestros servicios. Al utilizar nuestros servicios, aceptas el uso que hacemos de las cookies. Más Información. Aceptar

¿Qué es SQL Injection?

Pablo Campos Redondo
  • Escrito por Pablo Campos Redondo el 12 de Octubre de 2017
  • 2 min de lectura | Seguridad
¿Qué es SQL Injection?
El reproductor de video será cargado en breves instantes.

Definición de SQL Injection

Sql Injection ó Inyección SQL es una vulnerabilidad que permite al atacante enviar o “inyectar” instrucciones SQL de forma maliciosa y malintencionada dentro del código SQL programado para la manipulación de bases de datos, de esta forma todos los datos almacenados estarían en peligro. La finalidad de este ataque es poder modificar del comportamiento de nuestras consultas a través de parámetros no deseados, pudiendo así falsificar identidades, obtener y divulgar información de la base de datos (contraseñas, correos, información relevante, entre otros), borrar la base de datos, cambiar el nombre a las tablas, anular transacciones, el atacante puede convertirse en administrador de la misma.

Esto ocurre normalmente a la mala filtración de las variables en un programa que tiene o crea SQL, generalmente cuando solicitas a un usuario entradas de cualquier tipo y no se encuentran validadas, como por ejemplo su nombre y contraseña, pero a cambio de esta información el atacante envía una sentencia SQL invasora que se ejecutará en la base de datos.


Ejemplo de ataque SQL Injection

Existen muchas formas de ataques, uno de los más frecuentes es donde se valida una consulta como verdadera. Por ejemplo:

  SELECT * FROM usuarios WHERE username = ‘atacante’ AND password = ‘mi_clave’ OR 1=1;

Podemos observar que esta consulta está formada por el condicional OR que devolverá verdadero al cumplirse al menos una de las dos expresiones por lo que siempre será verdadero ya que 1 = 1, cuando esto se ejecuta la base de datos arroja el total de registros en la tabla aunque el nombre de usuario y contraseña sean incorrectos puesto que la condición OR 1=1 siempre se cumple.


Herramientas para SQL Injection

Se pueden realizar pruebas de SQL Injection y automatizar todo el proceso para detectar y aprovechar las vulnerabilidades con una herramienta llamada SQLMap, esta herramienta es recomendada por OWASP (Open Web Application Security Project o Proyecto Abierto de Seguridad en Aplicaciones Web) que es una comunidad enfocada a optimizar la seguridad informática, que desarrolla documentación, metodologías, herramientas de libre acceso en cuanto a seguridad de aplicaciones web, todos sus materiales se encuentran disponibles bajo licencia de software libre y abierta.

Te presento solo algunos de los comandos que puedes utilizar con SQLMap:

  • Para listar las bases de datos que se encuentran dentro de un servidor con SQLMap puedes ejecutar el siguiente comando en la consola:

    sqlmap -u "DIRECCION_URL" -–dbs

  • Listar tablas de la base de datos:

    sqlmap -u "DIRECCION_URL" -D "NOMBRE_BASE_DE_DATOS" –-tables

  • Muestra todos los datos dentro de la tabla a especificar:

    sqlmap -u "DIRECCION_URL" -D "NOMBRE_BASE_DE_DATOS" -T "NOMBRE_DE_TABLA" --dump

Puedes descargar SQLMap a través de su página Web http://sqlmap.org/ o clonar su repositorio desde GIT en :

git clone --depth 1 https://github.com/sqlmapproject/sqlmap.git sqlmap-dev*


Recuerda que puedes aprender muchas más tácticas y técnicas de Ethical Hacking en nuestro curso Online de introducción al Ethical Hacking, donde aprenderás como defenderte de multitud de ataques de manera introductoria. No pierdas la oportunidad de aprender mucho más sobre ciberseguridad y Ethical Hacking en el curso de Introducción a Ethical Hacking, tienes más de 5 horas en vídeos.


Artículo desarrollado a partir del vídeo por Jhuly Acosta

Estas son algunas de las empresas que ya confían en OpenWebinars

Profesores y profesionales

Nuestros docentes son profesionales que trabajan día a día en la materia que imparten

Conviértete en profesor de OpenWebinars