Inyección SQL en DVWA

Autor: | Última modificación: 27 de octubre de 2022 | Tiempo de Lectura: 3 minutos
Temas en este post: ,

El siguiente tutorial sobre cómo hacer una inyección SQL en DVWA está hecho con fines educativos. El propósito de las técnicas que veremos a continuación es identificar fallos de seguridad en aplicaciones vulnerables de manera autorizada, con el fin de reportarlos y aumentar la seguridad del sitio web.

¿Qué es la inyección SQL?

La inyección SQL es un ciberataque web que permite extraer, modificar, ingresar y borrar información en una base de datos de una aplicación. La gran mayoría de las aplicaciones web (aunque no todas) cuentan con bases de datos en su backend para almacenar información sobre:

  • Usuarios.
  • Productos.
  • Precios.
  • Contraseñas.

SQL es un lenguaje de programación que sirve para interactuar con bases de datos y extraer o modificar información en ellas. Las vulnerabilidades de inyección SQL son fallos de seguridad que permiten ejecutar comandos en este lenguaje, para vulnerar las bases de datos de una aplicación.

Para entender mejor cómo se ejecuta este ataque, a continuación veremos un ejemplo de cómo hacer una inyección SQL en DVWA.

¿Qué es DVWA?

Damn Vulnerable Web Application o DVWA es una aplicación web deliberadamente vulnerable para practicar los principales tipos de ciberataques, como el SQL injection.

¿Cómo hacer una inyección SQL en DVWA?

Ya hemos visto, de manera muy breve, qué es una inyección SQL y qué es DVWA. Ahora, veremos un tutorial básico sobre cómo hacer una inyección SQL en esta aplicación, con un nivel bajo de dificultad.

Preparación

  • Lo primero que necesitarás es abrir o instalar una máquina virtual con el sistema operativo para pentesting Kali Linux.
  • Luego, instala la aplicación de DVWA siguiendo nuestro tutorial.
  • Ahora, ve a la dirección del servidor de la página e inicia sesión con las credenciales por defecto: «admin» y «password» (que son altamente vulnerables a propósito).
  • El siguiente paso es abrir la pestaña de DVWA que dice «DVWA Security» y seleccionar el nivel de seguridad de la aplicación en «Low», que es el más bajo.
  • Finalmente, dirígete a la pestaña «SQL Injection«, donde encontrarás una entrada de datos que dice «User ID» y, al lado, el botón «Submit».

Prueba

Después de preparar la aplicación de DVWA para el ataque, haremos una prueba para ver si la entrada de la página «User ID» es vulnerable a inyección de código SQL. Para saber si estamos inyectando código en la aplicación:

  • Primero, envía una comilla sencilla, es decir: ‘. Si la página devuelve un error, es altamente probable que sea vulnerable.
  • El siguiente test que haremos será ejecutar comando que verás a continuación. Si la base de datos nos devuelve una respuesta normal, quiere decir que estamos inyectando código:
3' and '1'='1
  • Nuestra última prueba será ejecutar el comando que sigue. Si la base de datos NO nos da una respuesta, quiere decir que estamos inyectando código, ya que la condición que le estaremos dando es falsa:
3' and '1'='0

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

Ya hemos visto cómo preparar la aplicación y probar que sea vulnerable a la inyección de código SQL. Ahora, veremos el siguiente paso de cómo hacer una inyección SQL en DVWA: ejecutar un payload.

Dependiendo del tipo de vulnerabilidad SQL, se pueden ejecutar diferentes payloads. La inyección SQL es tan peligrosa que le podría permitir a un atacante tomar control de un servidor o un equipo. No obstante, en este ejercicio, veremos el payload más básico para probar en DVWA que es:

' or 'a'='a

Este pequeño payload le dirá a la base de datos de la aplicación, en lenguaje SQL, que muestre todos los usuarios de la aplicación en pantalla.

¿Cómo aprender más?

Ya has aprendido cómo hacer una inyección SQL en DVWA de manera simple. Si quieres aprender a ejecutar payloads más complejos y convertirte en un experto, en KeepCoding tenemos un curso intensivo justo para ti. Ingresa a nuestro Ciberseguridad Full Stack Bootcamp y descubre cómo especializarte en tan solo 7 meses. ¡No sigas esperando e inscríbete ahora!

[email protected]

¿Trabajo? Aprende a programar y consíguelo.

¡No te pierdas la próxima edición del Aprende a Programar desde Cero Full Stack Jr. Bootcamp!

 

Prepárate en 4 meses, aprende las últimas tecnologías y consigue trabajo desde ya. 

 

Solo en España hay más de 120.400 puestos tech sin cubrir, y con un sueldo 11.000€ por encima de la media nacional. ¡Es tu momento!

 

🗓️ Próxima edición: 13 de febrero

 

Reserva tu plaza descubre las becas disponibles.