Saltar al contenido
Underc0de /foro

sqlmap

$ man sqlmap

sqlmap es una herramienta de código abierto que automatiza la detección y explotación de fallos de inyección SQL y la toma de control de las bases de datos asociadas.

Qué es

sqlmap es una herramienta de pruebas de penetración de código abierto que automatiza la detección y explotación de fallos de inyección SQL. Incluye un potente motor de detección y funciones específicas para el pentester. Soporta cinco técnicas de inyección y más de 40 backends de base de datos, desde motores relacionales clásicos hasta data warehouses en la nube. Está escrita en Python y funciona en cualquier plataforma.

Para qué sirve

  • Detectar automáticamente parámetros vulnerables a inyección SQL en aplicaciones web propias o de laboratorio.
  • Hacer fingerprinting del motor de base de datos (MySQL, Oracle, PostgreSQL, SQL Server, Redshift, Snowflake, ClickHouse, etc.).
  • Enumerar bases de datos, tablas, columnas y usuarios para evaluar el impacto de una vulnerabilidad en un pentest autorizado.
  • Validar en CTF y entornos de práctica el funcionamiento de las distintas técnicas de inyección (boolean, error, union, stacked, time).
  • Verificar la efectividad de controles defensivos como WAF, prepared statements y mínimo privilegio en la base de datos.

Instalación

Forma recomendada (clonar el repositorio oficial, cualquier SO con Python):
Código: bash
git clone --depth 1 https://github.com/sqlmapproject/sqlmap.git sqlmap-dev
Alternativa — descargar el último master:
Código: text
# tar.gz: https://github.com/sqlmapproject/sqlmap/tarball/master
# zip:    https://github.com/sqlmapproject/sqlmap/zipball/master
En Kali Linux suele venir preinstalado o se instala con:
Código: bash
sudo apt install sqlmap
Comprobar la ayuda:
Código: bash
python sqlmap.py -h    # opciones básicas
python sqlmap.py -hh   # todas las opciones

Comandos frecuentes

Prueba básica contra un objetivo propio de laboratorio por URL (GET):
Código: bash
python sqlmap.py -u "http://127.0.0.1/item.php?id=1" --batch
Cargar una petición HTTP guardada (útil para POST o headers complejos):
Código: bash
python sqlmap.py -r peticion.req --batch
Testear datos enviados por POST:
Código: bash
python sqlmap.py -u "http://127.0.0.1/login.php" --data="user=a&pass=b"
Listar las bases de datos del objetivo de laboratorio:
Código: bash
python sqlmap.py -u "http://127.0.0.1/item.php?id=1" --dbs --batch
Listar las tablas de una base de datos concreta:
Código: bash
python sqlmap.py -u "http://127.0.0.1/item.php?id=1" --tables -D miapp
Volcar el contenido de una tabla (en entorno propio):
Código: bash
python sqlmap.py -u "http://127.0.0.1/item.php?id=1" --dump -D miapp -T usuarios
Ajustar intensidad y riesgo de las pruebas:
Código: bash
python sqlmap.py -u "http://127.0.0.1/item.php?id=1" --level=2 --risk=1 --batch
Rastrear el sitio y testear formularios automáticamente:
Código: bash
python sqlmap.py -u "http://127.0.0.1/" --crawl=2 --forms --batch

Buenas prácticas y uso legal

  • Usá sqlmap únicamente sobre sistemas propios, laboratorios/CTF o con autorización por escrito del dueño del sistema; probar inyección SQL contra terceros sin permiso es ilegal en la mayoría de las jurisdicciones.
  • Evitá opciones de alto impacto (--os-shell, --dump-all, --file-read/--file-write) salvo que el alcance del pentest lo autorice explícitamente.
  • Detección (Blue Team): WAF/IDS con firmas de SQLi (OR 1=1, UNION SELECT, SLEEP/WAITFOR DELAY, comentarios -- y /**/), User-Agent propio de sqlmap en logs y ráfagas de peticiones casi idénticas sobre un mismo parámetro.
  • Mitigación: consultas parametrizadas / prepared statements como defensa raíz, uso de ORM, validación estricta de entradas y cuenta de BD con mínimo privilegio (sin FILE ni xp_cmdshell).
  • Reforzá con WAF en modo bloqueo, rate limiting, hardening del DBMS y alertas en el SIEM sobre errores de sintaxis SQL repetidos.

Alternativas

  • jSQL Injection: herramienta gráfica en Java para detección y explotación de inyecciones SQL.
  • NoSQLMap: enfocada en bases de datos NoSQL como MongoDB.
  • Burp Suite: su scanner y extensiones permiten detectar inyecciones SQL de forma asistida.
  • Ghauri: herramienta CLI para detección y explotación automática de SQLi, inspirada en sqlmap.

Redactado con el asistente Underc0de IA a partir de fuentes públicas. Actualizado el 15/11/2026. ¿Ves un error? Contanos en el foro.

Grupo de WhatsApp