¿Cómo hacer un ataque de inyección SQL?

Autor: | Última modificación: 19 de abril de 2024 | Tiempo de Lectura: 3 minutos
Temas en este post: ,

Algunos de nuestros reconocimientos:

Premios KeepCoding

¿Sabes cómo hacer un ataque de inyección SQL? La siguiente explicación sobre cómo hacer un ataque de inyección SQL está hecha con fines académicos. El propósito de la técnica que te enseñaremos a continuación es identificar vulnerabilidades en sitios web para reportarlas ante sus dueños. Este proceso se debe hacer siempre de forma autorizada cuando se trata de una aplicación web ajena; de lo contrario, el hacking web es un delito.

En el siguiente ejercicio, te enseñaremos cómo hacer un ataque de inyección SQL en un entorno virtual de práctica de hacking web. Es decir, te explicaremos cómo practicar esta técnica en un sitio web diseñado especialmente para ello. Pero antes, haremos un breve repaso sobre qué es la inyección SQL y algunas de las herramientas que utilizaremos.

¿Cómo hacer un ataque de inyección SQL?

Conocimientos previos

Antes de iniciar con nuestro ataque de inyección SQL, veamos algunos conceptos que merece la pena mencionar para tener claridad al respecto:

Inyección SQL

La inyección SQL es un tipo de ciberataque web que consiste en ejecutar comandos en lenguaje SQL, para leer, modificar, añadir o eliminar información de una base de datos de una aplicación. Estos ciberataques suelen ocurrir debido a una falta de validación de los inputs de los usuarios. En un test de penetración, se debe probar que los datos ingresados por el cliente no se concatenen con el código ejecutado por el servidor. De lo contrario, se considera una vulnerabilidad.

DVWA

En este tutorial de cómo hacer un ataque de inyección SQL, ejecutaremos la intrusión en una aplicación web deliberadamente vulnerable llamada Damn Vulnerable Web App o DVWA. Esta aplicación permite ejecutar diferentes tipos de ataques en sus páginas y ajustar el nivel de dificultad.

Preparación

Ahora que hemos visto qué es una inyección SQL y la aplicación vulnerable de práctica en el que lo ejecutaremos, es hora de preparar el entorno virtual para desarrollar el ejercicio. Para ello:

  1. Crea una máquina virtual con la última versión de Kali Linux.
  2. Instala la aplicación DVWA en Kali.
  3. Abre el programa Burp Suite, que viene preinstalado en Kali, ve a la pantalla Proxy y haz clic en el botón Open browser.
  4. En el navegador de Burp Suite, abre la aplicación DVWA e inicia sesión con las credenciales por defecto «admin» y «password».
  5. En la aplicación, abre la pestaña «DVWA Security» y selecciona el nivel más bajo de seguridad.

Prueba

Para saber cómo hacer un ataque de inyección SQL es necesario aprender a probar si los inputs de una página web son vulnerables a ejecutar comandos en lenguaje SQL. Ahora, veremos cómo saber si estamos inyectando comandos en la aplicación.

  • En DVWA, dirígete a la pestaña llamada SQL Injection. Allí, verás la siguiente página:
¿Cómo hacer un ataque de inyección SQL?
  • Al ingresar el valor 1, veremos información sobre un usuario, lo que nos dará a entender que estamos interactuando con bases de datos.
¿Cómo hacer un ataque de inyección SQL?
  • Una forma de probar si se están ejecutando comandos SQL en la aplicación es enviar una comilla sencilla, es decir: ‘
  • Al hacer esto, la página dará un error.
¿Cómo hacer un ataque de inyección SQL?

Payload

🔴 ¿Quieres entrar de lleno a la Ciberseguridad? 🔴

Descubre el Ciberseguridad Full Stack Bootcamp de KeepCoding. La formación más completa del mercado y con empleabilidad garantizada

👉 Prueba gratis el Bootcamp en Ciberseguridad por una semana

Ahora que hemos visto cómo probar si la aplicación es vulnerable, es hora de ejecutar un payload en la aplicación. Uno de ellos es el siguiente:

// ¿Cómo hacer un ataque de inyección SQL?
' or '1'='1

La sintaxis del código SQL, que se ejecutará del lado del servidor, quedará del siguiente modo:

// ¿Cómo hacer un ataque de inyección SQL?
SELECT Name, Description FROM Products WHERE ID = '' OR '1'='1';

El resultado de inyectar este comando será imprimir en pantalla todos los datos de los usuarios de la aplicación, ya que el parámetro ‘1’=’1′ es verdadero. Para entender más sobre este tema, visita nuestro post sobre bases de SQL para ciberseguridad. No obstante, lo que verás en pantalla al ejecutar este payload en DVWA será lo siguiente:

¿Cómo hacer un ataque de inyección SQL?

SQLmap

Al aprender cómo hacer un ataque de inyección SQL, verás que también existen herramientas para automatizar el reconocimiento y la exploración de vulnerabilidades de este tipo. El programa más conocido para esto es SQLmap.

Para usar SQLmap, ve a la terminal de Kali y ejecuta el comando:

// ¿Cómo hacer un ataque de inyección SQL?
sqlmap

Para ver en detalle cómo usar esta herramienta para explotar vulnerabilidades SQL en DVWA, visita nuestro post sobre cómo usar SQLmap. Este software, al analizar una petición de una consulta SQL, es capaz de identificar fallos de seguridad y sus respectivos payloads. Además, permite acceder a las bases de datos y a su información.

¿Cómo aprender más?

Si quieres saber más sobre cómo hacer un ataque de inyección SQL y más técnicas de hacking web, en KeepCoding tenemos un curso intensivo ideal para ti. Ingresa a nuestro Ciberseguridad Full Stack Bootcamp y conviértete en especialista en tan solo 7 meses. ¡No sigas esperando e inscríbete ahora!

Posts Relacionados

¡CONVOCATORIA ABIERTA!

Ciberseguridad

Full Stack Bootcamp

Clases en Directo | Profesores en Activo | Temario 100% actualizado