Aprende a ejecutar inyecciones SQL de forma ágil y segura con SQLMap, apoyándote en BurpSuite para capturar la solicitud HTTP de DWA en Kali. Verás cómo identificar el parámetro vulnerable, enumerar bases de datos, extraer tablas y crackear contraseñas con el wordlist por defecto. Todo con un flujo claro para ahorrar tiempo sin perder precisión.
¿Cómo preparar BurpSuite y capturar la solicitud HTTP?
Para automatizar con SQLMap, primero necesitas la solicitud HTTP completa. Aquí entra BurpSuite: su navegador permite interceptar y guardar todo lo necesario, incluida la cookie de sesión.
Abre el navegador de BurpSuite. Ve a DWA y haz login: admin password.
Entra a SQL Injection y envía un valor simple, por ejemplo 1.
Activa la interceptación y recarga. Captura parámetros, ruta, IP del host y la cookie.
Guarda la solicitud en un archivo: dwA.txt en el escritorio.
Edita con nano y marca el punto de inyección con un asterisco en el valor 1. Esto indica a SQLMap dónde probar.
Ejemplo de preparación del archivo y edición con asterisco de inyección:
nano dwa.txt
# en el parámetro donde pusiste 1, colócale un * para señalar el punto de inyección
Claves del proceso:
BurpSuite solo se usa para capturar la solicitud y su cookie de sesión.
El asterisco guía a SQLMap sobre el parámetro a probar.
Con -r, SQLMap importa directamente la solicitud guardada.
¿Cómo automatizar con SQLMap para enumerar y extraer datos?
Con el archivo listo, SQLMap detecta el motor y te guía con preguntas interactivas. Puedes saltar pruebas innecesarias cuando ya identificó MySQL y concentrarte en extraer datos.
Enumerar bases de datos con el archivo capturado.
sqlmap -r dwa.txt --dvs
Seleccionar una base específica y listar sus tablas.
sqlmap -r dwa.txt -D dwa --tables
Elegir una tabla y volcar sus datos con dump.
sqlmap -r dwa.txt -D dwa -T users --dump
SQLMap detecta hashes y ofrece guardarlos y crackearlos automáticamente. Acepta el wordlist por defecto y evita sufijos comunes si buscas rapidez.
Interacciones típicas y buenas decisiones:
Sí a procesar el valor detectado como SQL.
Sí a saltar pruebas de otros motores si ya identificó MySQL.
No a incluir todas las pruebas de MySQL si ya halló la vulnerabilidad.
Sí a guardar hashes y crackear con el wordlist por defecto.
No a sufijos comunes si quieres velocidad.
Extraerlo todo cuando conviene:
sqlmap -r dwa.txt --dump-all
O usar -d para seleccionar otra base y volcar todas sus tablas:
sqlmap -r dwa.txt -d multi jidae--dump
Resultados que verás:
Parámetro vulnerable identificado. No hace falta probar otros si uno ya funciona.
Bases de datos, tablas y contenidos extraídos de forma estructurada.
Usuarios con avatar, fallos de login, hash del password y su versión crackeada.
¿Qué técnicas, riesgos y buenas prácticas se mencionan?
Se destaca una inyección basada en error: muy rápida para extraer todo. También existen variantes basadas en tiempo y basadas en booleano. Son más lentas, pero SQLMap las automatiza igual.
Aspectos críticos que debes considerar:
La automatización con SQLMap ahorra mucho tiempo frente al método manual.
Los datos extraídos pueden incluir usuarios y contraseñas. Con malas prácticas, podrían aparecer datos sensibles como tarjetas de crédito o débito.
SQLMap puede crackear contraseñas detectadas sin pasos adicionales, usando el wordlist por defecto, lo que agiliza el análisis.
Puedes iterar: volver a usar --dvs para ver otras bases, --tables para explorar estructuras, y --dump para extraer contenidos.
Buenas prácticas del flujo mostrado:
Mantén la cookie de sesión en la solicitud para evitar redirecciones al login.
Marca claramente el punto de inyección con el asterisco.
Responde de forma estratégica a los prompts para equilibrar velocidad y cobertura.
¿Prefieres hacerlo todo manual por curiosidad geek o automatizar para ir más rápido? Cuéntame en comentarios cuál enfoque te funciona mejor y por qué.