Integrar sqlmap con un Proxy como Burp Suite

Kali LinuxBeginner
Practicar Ahora

Introducción

En este laboratorio, aprenderá a integrar sqlmap, una potente herramienta de pruebas de penetración de código abierto que automatiza el proceso de detección y explotación de fallos de inyección SQL, con un proxy de interceptación como Burp Suite.

Utilizar un proxy con sqlmap es una habilidad crucial para los profesionales de la seguridad. Le permite ver los payloads exactos que sqlmap está enviando, comprender su lógica de prueba, depurar posibles problemas e incluso modificar las solicitudes sobre la marcha. Esta visibilidad es invaluable tanto para aprender cómo funcionan los ataques de inyección SQL como para realizar evaluaciones de seguridad más avanzadas y personalizadas.

Al final de este laboratorio, podrá enrutar el tráfico de sqlmap a través de Burp Suite, observar las solicitudes generadas y analizar los patrones de ataque automatizados.

Configurar Burp Suite para Escuchar en un Puerto Local

En este paso, lanzará Burp Suite y verificará que su listener de proxy esté activo. Burp Suite actúa como un servidor proxy web, posicionándose como un "man-in-the-middle" entre su navegador (o en este caso, sqlmap) y la aplicación objetivo. Por defecto, escucha las conexiones entrantes en el puerto 8080 de la máquina local (127.0.0.1).

Primero, iniciemos Burp Suite. Puede encontrarlo en el menú de aplicaciones.

  1. Haga clic en el Menú de Aplicaciones (el icono en la esquina superior izquierda de la pantalla).
  2. Navegue a Web -> Burp Suite Community Edition.
  3. Aparecerá un cuadro de diálogo. Puede dejar los valores predeterminados y hacer clic en Next.
  4. Otro cuadro de diálogo le pedirá que seleccione un proyecto. Elija Use Burp defaults y haga clic en Start Burp.

Una vez que Burp Suite se haya cargado, deberá verificar su configuración de proxy.

  1. Haga clic en la pestaña Proxy.
  2. Haga clic en la subpestaña Options dentro de la pestaña Proxy.
  3. Busque la sección "Proxy Listeners". Debería ver una entrada con la interfaz 127.0.0.1:8080 y la casilla "Running" marcada.

Esto confirma que Burp Suite está escuchando activamente el tráfico en el puerto local 8080. Cualquier aplicación configurada para enviar tráfico a esta dirección y puerto tendrá sus solicitudes interceptadas y registradas por Burp Suite.

Configurar sqlmap para Usar el Proxy con --proxy=http://127.0.0.1:8080

En este paso, aprenderá a instruir a sqlmap para que envíe su tráfico de red a través del proxy de Burp Suite que acabamos de configurar.

sqlmap proporciona un argumento de línea de comandos simple, --proxy, para especificar un proxy HTTP. Debe proporcionar la dirección del proxy en el formato http://<host>:<puerto>.

Dado que Burp Suite está escuchando en 127.0.0.1:8080, el argumento correcto a utilizar es:

--proxy=http://127.0.0.1:8080

Cuando agregue este argumento a su comando sqlmap, en lugar de enviar las solicitudes directamente al servidor web objetivo, sqlmap las enviará a http://127.0.0.1:8080. Burp Suite recibirá estas solicitudes, las registrará y las reenviará al destino final.

En el siguiente paso, combinaremos este argumento de proxy con una URL objetivo para realizar un escaneo. Por ahora, es importante entender que este único parámetro es todo lo que se necesita para integrar las dos herramientas.

Ejecutar un Escaneo Básico con sqlmap

En este paso, ejecutará un escaneo básico de sqlmap contra la aplicación web de prueba, enrutando el tráfico a través de Burp Suite. Le pediremos a sqlmap que enumere las bases de datos en el servidor.

Abra una terminal. Construiremos un comando que incluirá:

  • La URL objetivo: -u "http://127.0.0.1/index.php?id=1"
  • La configuración del proxy: --proxy=http://127.0.0.1:8080
  • La acción a realizar: --dbs (para enumerar bases de datos)
  • Una bandera no interactiva: --batch (para responder automáticamente 'sí' a todas las preguntas)

Ahora, ejecute el comando completo en su terminal:

sqlmap -u "http://127.0.0.1/index.php?id=1" --proxy=http://127.0.0.1:8080 --dbs --batch

Verá la salida de sqlmap en la terminal mientras comienza a probar el objetivo. Primero confirmará que el parámetro id es vulnerable y luego listará las bases de datos disponibles.

La salida debería ser similar a esta (los números de versión y algunos detalles pueden variar):

        ___
       __H__
 ___ ___[.]_____ ___ ___  {1.x.x#dev}
|_ -| . [.]     | .'| . |
|___|_  [.]_|_|_|__,|  _|
      |_|V...       |_|   http://sqlmap.org

[INFO] starting @ ...
...
[INFO] GET parameter 'id' is 'MySQL >= 5.0 boolean-based blind' injectable
[INFO] GET parameter 'id' is 'MySQL >= 5.0.12 stacked queries' injectable
[INFO] GET parameter 'id' is 'MySQL >= 5.0.12 time-based blind' injectable
...
[INFO] fetching database names
[INFO] the following databases are available [4]:
[*] information_schema
[*] mysql
[*] performance_schema
[*] sys

[INFO] fetched data logged to text files under '/home/labex/.sqlmap/output/127.0.0.1'

Mientras sqlmap se está ejecutando, está enviando cientos de solicitudes a través de Burp Suite.

Observar el Tráfico Generado por sqlmap en el Historial HTTP de Burp Suite

En este paso, volverá a Burp Suite para ver el tráfico que sqlmap generó durante su escaneo.

Traiga la ventana de Burp Suite al frente.

  1. Asegúrese de estar en la pestaña Proxy.
  2. Haga clic en la sub-pestaña HTTP history.

Ahora verá una tabla llena de solicitudes HTTP. Todas estas solicitudes fueron enviadas por sqlmap al servidor objetivo a través del proxy de Burp.

Tómese un momento para observar la lista:

  • Host: Todas las solicitudes se dirigen a 127.0.0.1.
  • Method: La mayoría de las solicitudes son GET.
  • URL: La URL es siempre /index.php, pero el parámetro id en la cadena de consulta cambia con cada solicitud.

Esta vista proporciona un registro completo de la actividad de sqlmap. Puede ver el gran volumen de solicitudes que genera una herramienta automatizada para probar una sola clase de vulnerabilidad. Este es el principal beneficio de usar un proxy: hace visibles las operaciones de "caja negra" de la herramienta.

Analizar las Cargas Útiles (Payloads) Enviadas por sqlmap a través del Proxy

En este paso, examinará más de cerca las solicitudes individuales para comprender las cargas útiles específicas que sqlmap utiliza para detectar y explotar vulnerabilidades de inyección SQL.

En la pestaña HTTP history de Burp Suite, haga clic en cualquier solicitud de la lista. Al seleccionar una solicitud, aparecerán dos nuevos paneles debajo de la lista: Request y Response.

Haga clic en el panel Request para ver la solicitud HTTP sin procesar enviada por sqlmap. Preste mucha atención al parámetro id en la URL. Verá varias cargas útiles que se están probando.

Por ejemplo, podría encontrar una carga útil de tipo "boolean-based blind" (ciego basado en booleanos) como esta:

GET /index.php?id=1%20AND%208003=8003 HTTP/1.1
Host: 127.0.0.1
...

Aquí, sqlmap está probando si la aplicación responde de manera diferente cuando se inyecta una condición verdadera (AND 8003=8003). El %20 es la representación codificada en URL de un espacio.

También podría encontrar una carga útil de tipo "time-based blind" (ciego basado en tiempo):

GET /index.php?id=1%20AND%20(SELECT%202079%20FROM%20(SELECT(SLEEP(5)))IImL) HTTP/1.1
Host: 127.0.0.1
...

Con esta carga útil, sqlmap está inyectando un comando SLEEP(5). Si el servidor tarda 5 segundos más en responder, sqlmap sabe que la inyección fue exitosa y que la base de datos es vulnerable.

Al analizar estas solicitudes, obtendrá una comprensión mucho más profunda de cómo funcionan los escáneres automatizados. Puede ver la lógica que utilizan para confirmar vulnerabilidades, lo cual es mucho más educativo que simplemente ver el resultado final en la terminal.

Resumen

En este laboratorio, integró con éxito la herramienta de escaneo automatizado sqlmap con el proxy de interceptación de Burp Suite.

Aprendió a:

  • Iniciar Burp Suite y confirmar que su proxy listener está ejecutándose en 127.0.0.1:8080.
  • Utilizar el argumento --proxy en sqlmap para enrutar todo su tráfico a través de Burp Suite.
  • Ejecutar un escaneo con el proxy habilitado para generar tráfico.
  • Observar la lista completa de solicitudes HTTP en la pestaña HTTP history de Burp Suite.
  • Analizar solicitudes individuales para comprender las cargas útiles específicas de inyección SQL basadas en booleanos y basadas en tiempo que sqlmap utiliza para identificar vulnerabilidades.

Esta técnica es fundamental para cualquier probador de seguridad web, ya que proporciona información crítica sobre el comportamiento de las herramientas automatizadas y permite un mayor control y análisis durante una prueba de penetración.