SQLMap Cheat Sheet: Guía Práctica de Inyección SQL

Si trabajas en ciberseguridad, SQLMap es esa navaja suiza que siempre tienes a mano para detectar y explotar vulnerabilidades de inyección SQL. Este sqlmap cheat sheet está pensado para ser tu guía de referencia, directa y práctica, que te permitirá encontrar el comando exacto y la estrategia adecuada para cada auditoría, desde la detección inicial hasta la demostración del impacto real en el negocio.

Resumen del Caso: Cómo una Fuga de Datos Trivial se Convirtió en un Incidente Crítico

Laptop mostrando código sqlmap en pantalla con tarjeta de referencia de comandos sobre escritorio de madera

Imaginemos un caso práctico: un e-commerce de tamaño mediano sufrió un ciberataque que comenzó con una simple vulnerabilidad de inyección SQL en su formulario de búsqueda de productos. A primera vista, el fallo parecía menor. Sin embargo, los atacantes lo utilizaron para extraer la base de datos completa de clientes, incluyendo nombres, direcciones y credenciales de acceso. El impacto no se detuvo ahí: al analizar los datos, encontraron que un usuario administrador reutilizaba su contraseña en el panel de control del servidor, lo que les permitió escalar privilegios, acceder al sistema de ficheros y, finalmente, robar los datos de las tarjetas de crédito almacenadas incorrectamente. El resultado fue devastador: pérdida de confianza, sanciones regulatorias y un coste de recuperación que superó los 80.000 €.

Este escenario ilustra a la perfección cómo una vulnerabilidad aparentemente simple puede convertirse en una brecha de seguridad catastrófica. Dominar herramientas como SQLMap no solo sirve para encontrar el fallo, sino para entender y demostrar todo el alcance del riesgo.

El propósito de esta guía de referencia

La idea de este artículo va más allá de un simple listado de comandos. Lo hemos concebido como un manual de campo bien estructurado que te permitirá:

  • Agilizar tus tareas de pentesting: Encuentra al instante la sintaxis que necesitas para cada escenario, ya sea un escaneo básico o una técnica avanzada para evadir un WAF (Web Application Firewall).
  • Aumentar la precisión de tus análisis: Aprende a usar las opciones avanzadas para afinar el nivel de riesgo y la profundidad de las pruebas. Esto es clave para evitar falsos positivos y, sobre todo, para no causar daños en sistemas que están en producción.
  • Entender para fortalecer: Comprende cómo un atacante podría usar esta misma herramienta para extraer datos sensibles, leer ficheros del sistema o, en el peor de los casos, tomar el control de un servidor.

SQLMap es mucho más que un escáner; es un framework de explotación en toda regla. Dominarlo te permite no solo identificar una vulnerabilidad, sino también demostrar su impacto real, un paso fundamental en cualquier auditoría de seguridad ética.

Esta herramienta es un estándar en la industria. De hecho, en España más del 65% de las auditorías web realizadas por empresas especializadas incluyen pruebas automatizadas con SQLMap para evaluar la seguridad de las bases de datos. Su uso extendido en el sector profesional no hace más que subrayar su importancia. Si te interesa estar al día, no te pierdas las charlas y talleres en eventos del sector.

Hemos diseñado esta guía para que se convierta en tu recurso de cabecera, tanto si estás dando tus primeros pasos en el mundo del pentesting como si ya eres un experto buscando optimizar al máximo tu flujo de trabajo.

Análisis Técnico Paso a Paso: Realizar un Escaneo Básico

Monitor mostrando comando sqlmap con URL vulnerable y lupa amplificando la dirección web para análisis de seguridad

Para empezar a sacarle partido a sqlmap, lo primero es lanzar un escaneo básico contra una URL. Con esto, podrás comprobar de forma rápida si un parámetro es vulnerable a inyección SQL, lo que te abrirá la puerta a análisis mucho más profundos.

El comando fundamental, el que usarás siempre, es -u (o su versión larga, --url). Sirve para indicar la dirección completa del objetivo que quieres poner a prueba. Una vez la tiene, sqlmap se encarga de identificar los parámetros de la URL y empezar a atacarlos.

Construyendo tu primer comando

Imagina que te encuentras con una URL como http://ejemplo-vulnerable.com/producto.php?id=5. Para pedirle a sqlmap que revise si el parámetro id es vulnerable, la sintaxis es de lo más directa.

Una vez que has lanzado el análisis, un paso lógico es intentar enumerar las bases de datos a las que tienes acceso. Aquí es donde entra en juego la opción --dbs. Este comando le dice a sqlmap que, si confirma la vulnerabilidad, intente listar los nombres de todas las bases de datos disponibles.

Así que, un comando completo para este primer testeo quedaría tal que así:

sqlmap -u "http://ejemplo-vulnerable.com/producto.php?id=5" --dbs

Cuando lo ejecutes, sqlmap empezará su magia, probando un montón de payloads contra el parámetro id. Durante el proceso, te hará algunas preguntas, como si quieres que pruebe otros parámetros o con qué nivel de agresividad quieres que actúe. Para un primer contacto, puedes aceptar las opciones por defecto sin problema.

Interpretando los resultados iniciales

Si el escaneo da sus frutos, sqlmap te devolverá una lista con los nombres de las bases de datos que ha encontrado. Este es el primer gran indicio de que la aplicación tiene un agujero de seguridad.

Ver en tu terminal algo como [INFO] available databases [2]: seguido de information_schema y productos_db es una confirmación en toda regla. A partir de este punto, ya puedes usar esta información para seguir tirando del hilo y explorar la estructura de productos_db, algo que veremos más adelante.

Este tipo de análisis inicial no es solo un primer paso; es una pieza clave en cualquier auditoría de seguridad y se integra en metodologías más amplias, como las que explicamos en nuestro tutorial de pruebas de seguridad de red.

Cómo Extraer Datos: De la Enumeración al Volcado

Persona trabajando en laptop con hoja de cálculo de base de datos y comandos SQL

Una vez has confirmado que existe una vulnerabilidad SQL, el verdadero valor para un auditor de seguridad es demostrar el impacto real. Y eso, amigo mío, significa acceder a los datos. La enumeración es justo ese proceso metódico con el que vas descubriendo y extrayendo toda la información que guarda el servidor. Este flujo de trabajo es el corazón de cualquier auditoría seria con sqlmap.

El primer paso, casi por instinto, es siempre listar las bases de datos disponibles. Con el comando --dbs, sqlmap se lanza a conseguir los nombres de todas las bases de datos a las que el usuario actual tiene permiso. Considéralo tu mapa inicial del tesoro.

Descubriendo las tablas y columnas

Cuando ya tienes en el punto de mira una base de datos interesante, pongamos por caso empresa_db, el siguiente movimiento es ver qué tablas contiene. Esto lo consigues con el comando --tables, especificando siempre la base de datos objetivo con el parámetro -D.

sqlmap -u "http://ejemplo-vulnerable.com/cat.php?id=1" -D empresa_db --tables

Este comando te devolverá una lista de todas las tablas dentro de empresa_db. Al echarle un ojo, puede que una tabla como usuarios te llame la atención. Es un buen comienzo.

Ahora toca entender su estructura. Para eso, usamos --columns junto con el nombre de la tabla (-T usuarios). Así de simple enumeras todas sus columnas.

sqlmap -u "http://ejemplo-vulnerable.com/cat.php?id=1" -D empresa_db -T usuarios --columns

El resultado podría mostrarte columnas como id, nombre_usuario y hash_contrasena. Bingo. Has encontrado la información crítica que buscabas.

Volcando los datos que realmente importan

El último paso es el gran final: extraer el contenido. El comando --dump se encarga de volcar toda la información de las columnas que le indiques. Si lo que quieres es ir al grano y sacar solo los nombres de usuario y sus contraseñas, puedes afinar el tiro usando el parámetro -C.

sqlmap -u "http://ejemplo-vulnerable.com/cat.php?id=1" -D empresa_db -T usuarios -C nombre_usuario,hash_contrasena --dump

Sqlmap no solo te mostrará los datos en la terminal, sino que también los guardará automáticamente en un fichero CSV para que puedas analizarlos con calma. Este proceso, desde --dbs hasta --dump, es el flujo de trabajo estándar en esta completa sqlmap cheat sheet para sacar información sensible de forma controlada y profesional.

La clave para un volcado de datos eficiente es la especificidad. En lugar de lanzar un --dump-all, que puede tardar horas en bases de datos grandes y generar un ruido tremendo, centra tus esfuerzos en las tablas y columnas que son realmente relevantes para demostrar el riesgo.

Remediación Inmediata y Prevención a Largo Plazo

Tras detectar y explotar una vulnerabilidad de inyección SQL, la acción debe ser inmediata para contener el daño y, posteriormente, implementar controles robustos para evitar que vuelva a ocurrir.

¿Qué hacer justo después de encontrar una vulnerabilidad SQLi?

Si te encuentras en una situación de crisis real, estas son las acciones de remediación inmediata que debes tomar:

  1. Aislar el Servidor Comprometido: Desconecta el servidor afectado de la red para evitar movimientos laterales del atacante.
  2. Desactivar Funcionalidades Críticas: Pausa temporalmente las pasarelas de pago, los formularios de registro o cualquier otra funcionalidad que maneje datos sensibles.
  3. Restaurar desde un Backup Seguro: Identifica la última copia de seguridad limpia (anterior a la brecha) y prepara un plan de restauración.
  4. Forzar la Rotación de Credenciales: Invalida todas las claves de API, contraseñas de bases de datos y credenciales de usuario que pudieran haber sido expuestas.

¿Cómo prevenir ataques de inyección SQL?

La prevención es la mejor defensa. Aquí tienes una checklist de controles concretos que deberías implementar:

  • Implementar un WAF (Web Application Firewall): Actúa como una primera línea de defensa, filtrando tráfico malicioso antes de que llegue a tu aplicación.
  • Validación y Saneamiento de Entradas (Input Validation): Nunca confíes en los datos que vienen del usuario. Valida el formato, la longitud y el tipo de dato en el lado del servidor. Utiliza consultas parametrizadas (prepared statements) en lugar de concatenar strings para construir tus consultas SQL.
  • Principio de Mínimo Privilegio: Asegúrate de que el usuario de la base de datos que utiliza tu aplicación tenga los permisos mínimos indispensables. Si solo necesita leer datos de ciertas tablas, no le des permisos de escritura o de acceso a toda la base de datos.
  • Escaneos de Vulnerabilidades Programados: Utiliza herramientas como sqlmap de forma proactiva y programada para detectar fallos antes de que lo haga un atacante.

Aplicar un Flujo de Trabajo de Pentesting Ético

Usar sqlmap de forma eficaz va mucho más allá de lanzar comandos a ciegas. Requiere una metodología profesional y estructurada. Integrar esta herramienta en una auditoría de seguridad significa seguir un flujo de trabajo que garantice resultados precisos, bien documentados y, sobre todo, seguros para el cliente.

Un enfoque profesional de verdad combina la potencia de la automatización de sqlmap con la finura del análisis manual. Aquí es donde herramientas como Burp Suite se vuelven indispensables para interceptar peticiones, entender la lógica de la aplicación y descubrir esas vulnerabilidades complejas que un escáner automático podría pasar por alto. Este enfoque híbrido es lo que maximiza la cobertura y la profundidad del análisis.

Del hallazgo técnico al riesgo de negocio

El objetivo final de un pentest no es simplemente coleccionar fallos, sino traducir esos hallazgos técnicos en riesgos de negocio que cualquiera pueda entender. Cuando sqlmap confirma una vulnerabilidad, el siguiente paso es documentar el impacto real que podría tener.

  • Documentación clara: Cada hallazgo debe registrarse con capturas de pantalla, los comandos exactos que utilizaste y los datos que conseguiste extraer.
  • Análisis de impacto: Tienes que explicar qué significa esa vulnerabilidad para el negocio. ¿Permite robar datos de clientes? ¿Podrían modificar precios? ¿Es posible detener por completo la operativa de la empresa?
  • Remediación accionable: El informe final debe incluir recomendaciones concretas y priorizadas para que el equipo de desarrollo sepa exactamente qué hacer para solucionar el problema.

El siguiente diagrama visualiza perfectamente este flujo de trabajo, desde que detectas la vulnerabilidad con sqlmap hasta que podrías obtener control total sobre el sistema de ficheros.

Diagrama de flujo mostrando proceso de lectura, escritura y ejecución en terminal para comandos de base de datos

Como se puede ver, una vulnerabilidad SQLi puede escalar rápidamente desde la simple lectura de ficheros hasta la escritura y la ejecución remota de comandos, un riesgo mayúsculo.

Combinar automatización y análisis manual

En el mundo del hacking ético, sqlmap es una herramienta fundamental. De hecho, aproximadamente el 58% de las vulnerabilidades SQLi reportadas en plataformas de bug bounty se detectan inicialmente con ella. Sin embargo, y esto es clave, los expertos coinciden en que el 84% de los bugs más críticos se descubren mediante análisis manual, combinando la intuición humana con los resultados automáticos.

La verdadera habilidad de un pentester no reside en dominar la herramienta, sino en saber interpretar sus resultados, combinarlos con su propio análisis y comunicar el riesgo de forma efectiva para proteger a la organización.

Este enfoque metódico es la base de cualquier servicio profesional, como detallamos en nuestra guía sobre qué es el pentesting. Al seguir un flujo de trabajo ético, te aseguras de que tus auditorías aporten un valor real y fortalezcan la seguridad de una forma tangible y duradera.

Dudas Frecuentes sobre SQLMap (FAQ)

Aquí, en nuestra hoja de referencia de sqlmap, vamos a resolver algunas de las preguntas más comunes que surgen al usar la herramienta. La idea es que puedas despejar dudas rápido y trabajar con más seguridad y confianza.

¿Es legal utilizar SQLMap?

Vamos a ser claros: usar SQLMap es legal solo y exclusivamente en sistemas de tu propiedad o cuando tienes un permiso explícito y por escrito del dueño. Hablamos de escenarios como un contrato de pentesting o la participación en un programa de bug bounty bien definido.

Lanzar SQLMap contra sistemas ajenos sin autorización es completamente ilegal. En España y en la mayoría de países, se considera un delito informático con consecuencias serias.

SQLMap no encuentra una vulnerabilidad que creo que existe, ¿qué hago?

Cuando la configuración por defecto no da resultados, es hora de ser más agresivo. Aumenta los valores de --level (hasta 5) y --risk (hasta 3) para que las pruebas sean mucho más profundas y exhaustivas.

Si tienes la mínima sospecha de que hay un WAF (Web Application Firewall) de por medio, es casi obligatorio que uses los scripts de evasión con la opción --tamper. Y un consejo de la casa: nunca te fíes al 100% de la automatización. Combina siempre SQLMap con una revisión manual usando herramientas como Burp Suite para pillar esas lógicas de negocio complejas que a las máquinas se les escapan.

¿Cómo puedo acelerar un escaneo con SQLMap?

Para que los escaneos no se eternicen, puedes aumentar el número de hilos de ejecución con la opción --threads. Un valor como --threads=10 suele dar buenos resultados.

Otro truco es acotar el terreno. Si sabes que te enfrentas a una base de datos concreta, díselo con --dbms (por ejemplo, --dbms=mysql). Lo mismo aplica para la técnica de inyección; si tienes una idea, usa --technique. Además, la opción --smart es muy útil, ya que concentra las pruebas más pesadas solo en aquellos parámetros que de verdad parecen prometedores.

¿Qué son los scripts 'tamper' y cuándo debería usarlos?

Los scripts 'tamper' son pequeñas joyas en Python que modifican los payloads de SQLMap sobre la marcha para esquivar filtros de seguridad y WAFs. Son tu mejor aliado cuando sospechas que un firewall de aplicación está bloqueando tus ataques.

Los usas con la opción --tamper. Por ejemplo, un clásico es --tamper=space2comment, que cambia los espacios en blanco por comentarios (/**/), una técnica muy efectiva para saltarse filtros de seguridad bastante básicos.


En DragonSec, te ofrecemos monitorización continua y escaneos de vulnerabilidades para que puedas ir un paso por delante de las amenazas, mucho antes de que se conviertan en un problema real.

Solicita un escaneo gratuito