0% acharam este documento útil (0 voto)
8 visualizações39 páginas

Guia Completo sobre Sqlmap para Injeção SQL

Este documento discute vários comandos de alvo na ferramenta sqlmap. Começa apresentando o sqlmap e listando suas principais características. Em seguida, cobre vários comandos de alvo para o sqlmap, incluindo o direcionamento de uma URL, arquivo de log, arquivo em massa, dorks do Google e requisições HTTP. Esses comandos permitem que o sqlmap teste automaticamente múltiplos alvos em busca de vulnerabilidades de injeção SQL, alimentando-o com URLs, arquivos contendo URLs ou requisições HTTP para análise.

Traduzido por

ScribdTranslations
Direitos autorais
© All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
8 visualizações39 páginas

Guia Completo sobre Sqlmap para Injeção SQL

Este documento discute vários comandos de alvo na ferramenta sqlmap. Começa apresentando o sqlmap e listando suas principais características. Em seguida, cobre vários comandos de alvo para o sqlmap, incluindo o direcionamento de uma URL, arquivo de log, arquivo em massa, dorks do Google e requisições HTTP. Esses comandos permitem que o sqlmap teste automaticamente múltiplos alvos em busca de vulnerabilidades de injeção SQL, alimentando-o com URLs, arquivos contendo URLs ou requisições HTTP para análise.

Traduzido por

ScribdTranslations
Direitos autorais
© All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd

TABLE OF CONTENTS

1 Resumo 3
2 sqlmap 5
2.1 Características 5
3 O Sqlmap'sExploração 7
3.1 URL de destino 8
Arquivo de Log de Segmentação
{"text":"3.2"} 9
3.3 Arquivo em Massa Alvo 11
3.4 Alvos Google Dorks 13
3.5 Solicitações HTTP de destino 14
4 Teste de Penetração de Banco de Dados usando Sqlmap 17
4.1 Bancos de dados 18
4.2 Mesas 19
4.3 Colunas 20
4.4 Obter dados de uma tabela 21
4.5 Descarregar Tudo 22
5 Explorando Injeção SQL Baseada em Formulário usando Sqlmap
24
6 Exploração de Injeção de SQL em Vários Alvos usando 31
Sqlmap
7 Sobre Nós 37

[Link] Página | 2
Resumo

Olá a todos. Esta publicação irá se concentrar em uma categoria de comandos do sqlmap chamada de 'destino
comandos.” Muitos podem não ter tentado esses comandos, mas eles podem ser muito úteis na
mundo corporativo.
Neste artigo, iremos voltar nosso foco para uma das melhores ferramentas para testes de penetração SQL.
disponível chamado SQLMAP.

[Link] Página | 3
[Link] Página | 4
sqlmap
sqlmap é uma ferramenta de teste de penetração de código aberto que automatiza o processo de detecção e
explorando falhas de injeção SQL e tomando conta de servidores de banco de dados. Ele vem com uma detecção poderosa
motor, muitos recursos de nicho para o testador de penetração definitivo e uma ampla gama de switches duradouros
desde a impressão digital do banco de dados, passando pela busca de dados no banco de dados, até o acesso ao arquivo subjacente
sistema e execução de comandos no sistema operacional via conexões fora de banda.

Features
• Suporte total para MySQL, Oracle, PostgreSQL, Microsoft SQL Server, Microsoft Access, IBM DB2,
Sistemas de gerenciamento de banco de dados SQLite, Firebird, Sybase, SAP MaxDB, HSQLDB e Informix.
• Suporte total para seis técnicas de injeção SQL: cega baseada em booleanos, cega baseada em tempo, erro-
baseado, baseado em consulta UNION, consultas empilhadas e fora de banda.
• Support to directly connect to the database without passing via a SQL injection, by providing
Credenciais do DBMS, endereço IP, porta e nome do banco de dados.
• Suporte para enumerar usuários, hashes de senhas, privilégios, papéis, bancos de dados, tabelas, e
colunas.
• Reconhecimento automático de formatos de hash de senhas e suporte para quebrá-los usando um
ataque baseado em dicionário.
• Suporte para descarregar tabelas de banco de dados inteiramente, um intervalo de entradas ou colunas específicas conforme o usuário.
escolha. O usuário também pode escolher despejar apenas um intervalo de caracteres da entrada de cada coluna.
• Suporte para pesquisar nomes de banco de dados específicos, tabelas específicas em todos os bancos de dados ou específicos
colunas em todas as tabelas dos bancos de dados. Isso é útil, por exemplo, para identificar tabelas que contêm
credenciais de aplicação personalizada onde os nomes das colunas relevantes contêm uma string como um nome
e passe.
• Suporte para baixar e enviar qualquer arquivo do sistema de arquivos do servidor de banco de dados
quando o software de banco de dados é MySQL, PostgreSQL ou Microsoft SQL Server.
• Suporte para executar comandos arbitrários e recuperar sua saída padrão no banco de dados
sistema operacional subjacente do servidor quando o software de banco de dados é MySQL, PostgreSQL ou
Microsoft SQL Server.
• Apoio para estabelecer uma conexão TCP stateful fora da banda entre a máquina atacadora
e o sistema operacional subjacente do servidor de banco de dados. Este canal pode ser interativo
prompt de comando, uma sessão Meterpreter ou uma sessão de interface gráfica do usuário (VNC) conforme
escolha do usuário.
• Suporte para elevação de privilégios do usuário do processo de banco de dados via Meterpreter do Metasploit
comando getsystem.

[Link] Página | 5
[Link] Página | 6
A Exploração do Sqlmap
Uma vez que é um crime atacar um site ao vivo, estamos restringindo nosso foco aos sites que são feitos
apenas para este propósito de teste. Também usamos um PC local com o SQL dhakkan instalado nele. Você pode
referir-se aoartigospublicado anteriormente para ter uma ideia de como configurar o dhakkan na sua máquina também.
Então, sem mais delongas, vamos mergulhar.

[Link]

Primeiramente, eu configurei o SQL dhakkan em uma máquina com o endereço IP [Link]. Eu vou para o
aula 1 guia para SQLi baseado em erro.

[Link]

[Link] Página | 7
URL de destino
Um dos comandos mais básicos de todos os tempos. Todo banco de dados tem uma página da web e toda página da web tem uma URL.
Vamos atacar essas URLs para colocar as mãos no banco de dados dentro!
Ao adicionar '-u <URL>' no comando sqlmap, podemos especificar a URL que estamos visando para verificar se há SQL.
injeção. É a operação mais básica e necessária.
Aqui, vamos buscar todos os bancos de dados que o endereço IP [Link] pode ter, acrescentando –dbs

sqlmap -u [Link] --dbs

Agora, todos os bancos de dados disponíveis no IP fornecido foram despejados!

[Link] Página | 8
Arquivo de Log de Alvo
Muitas ferramentas salvam um arquivo de log para manter um registro dos endereços IP se comunicando de um lado para o outro. Podemos
alimente um arquivo de log desse tipo ao sqlmap e ele testará automaticamente todas as URLs naquele arquivo de log.
O arquivo de log pode ter um registro de vários alvos na realidade, mas aqui estaremos capturando o pedido de um
site na burp suite e depois salvando seu arquivo de log para simplicidade. Vamos ativar a interceptação então.

Vá para o site "[Link]/[Link]/tasks/basic_ch1.php?id=1" e capture o


solicitação em um burp. Tem um laboratório de injeção SQL instalado sobre IP público para testadores de penetração.

[Link] Página | 9
A solicitação capturada será algo como:

Agora clique com o botão direito -> salvar item e salve este pedido como "logfile" na área de trabalho. Não há necessidade de fornecer

alguma extensão aqui.

[Link] Página | 10
Abra o terminal e digite o seguinte comando para automatizar o ataque a partir do próprio arquivo de log.

sqlmap -l /root/Desktop/logfile

Arquivo em Massa Alvo

Bulkfile é um arquivo de texto que contém as URLs de todas as máquinas-alvo, cada uma em uma única linha com a exata
URL onde o ataque é aplicável.
Então, vamos criar um arquivo em lote na área de trabalho chamado [Link].

tocar [Link]
sudo nano [Link]

Isso abrirá um editor de texto de linha de comando chamado 'nano'. Vamos inserir alguns URLs.
Para salvar o arquivo: CTRL+O -> ENTER
Para sair do nano: CTRL+X
Estamos prontos para atacar ambas as URLs juntas pelo comando:

[Link] Página | 11
sqlmap -m /root/Desktop/[Link] --dbs

Vamos obter a lista de bancos de dados e podemos continuar com nossa outra URL.

[Link] Página | 12
Dorks do Google Alvo
Também podemos automatizar o processo de encontrar SQLi ao adicionar um alvo de dork do Google. O que isso faz é
que começará a procurar todos os sites com o Google dork fornecido e aplicará automaticamente
sqlmap nos sites que correspondem à dork. Isenção de responsabilidade: este ataque será aplicado automaticamente a
qualquer site que corresponda ao dork, seja governo ou militar, o que é um crime grave
portanto, é aconselhável que você brinque com ele com cuidado.
Como sabemos, injeções SQL baseadas em erro são frequentemente encontradas em URLs que têm '.php?id=<num>' nelas,
podemos aplicar o dork inurl do Google para encontrar todos os sites com isso em sua URL.

sqlmap–g "inurl: ?id=1"

Como você pode ver, o sqlmap encontrou um site com ‘?id=1’ em sua URL.
Eu estarei pressionando n e cancelando a varredura sqlmap, uma vez que é um crime fazer isso.
Também podemos especificar o número da página específica na qual queremos aplicar o Google dork.
opção "–gpage"

[Link] Página | 13
Solicitações HTTP alvo
Um cliente HTTP envia uma solicitação HTTP a um servidor na forma de uma mensagem de solicitação que inclui o
seguindo formato:
Uma linha de pedido
Zero ou mais campos de cabeçalho (Geral|Requisição|Entidade) seguidos por CRLF
Uma linha em branco (ou seja, uma linha sem nada antes do CRLF) indicando o fim dos campos de cabeçalho
Opcionalmente um corpo de mensagem
A linha de pedido começa com um token de método, seguido pelo Request-URI e pela versão do protocolo.
e terminando com CRLF. Os elementos são separados por caracteres SP de espaço.
Linha-De-Requisição = Método SP URI-De-Requisição SP Versão-HTTP CRLF
Assim, podemos interceptar essas solicitações HTTP, salvar em um arquivo de texto e automatizar o ataque com
sqlmap.

Capturei a solicitação do site “[Link]/Less-1/?id=1” no burp e vou


salve-o em um arquivo de texto chamado "[Link]" e execute o comando:

sqlmap -r /root/Desktop/[Link]

[Link] Página | 14
Como você pode ver, o sqlmap detectou o alvo no arquivo de texto. Podemos aplicar ainda –dbs para buscar
todas as bases de dados.

[Link] Página | 15
[Link] Página | 16
Teste de Penetração em Banco de Dados usando
Sqlmap
Às vezes, você visita sites que permitem que você selecione itens de produto através da sua galeria de fotos se você
Observe sua URL, você notará que o item do produto é chamado por meio de seus números de identificação do produto.
Vamos pegar um exemplo

[Link]

Assim, quando um atacante visita esse tipo de site, ele sempre verifica a vulnerabilidade SQL dentro do servidor web.
para lançar um ataque SQL.

Vamos verificar como o atacante verifica a vulnerabilidade SQL.


O atacante tentará quebrar a consulta para conseguir a mensagem de erro, se ele for bem-sucedido.
recebeu uma mensagem de erro que confirma que o servidor web é afetado por injeção de SQL.

[Link]

A partir da captura de tela, você pode ver que recebemos a mensagem de erro com sucesso, agora nós fizemos
Ataque SQL em um servidor web para que possamos obter informações do banco de dados.

[Link] Página | 17
Bancos de dados
For database penetration testing we always choose SQLMAP, this tool is very helpful for beginners
que não conseguem recuperar informações do banco de dados manualmente ou não estão cientes das técnicas de injeção de SQL.
Abra o terminal no seu Kali Linux e digite o seguinte comando que inicia um ataque de injeção SQL em
o site alvo.

sqlmap -u "[Link]
--dbs --batch

-u:target URL
–dbs: buscar nome do banco de dados
–batch: Isso fará com que o sqlmap siga o comportamento padrão sempre que a entrada do usuário for necessária.

Aqui a partir da captura de tela fornecida, você pode ver que conseguimos recuperar com sucesso o nome do banco de dados "acuart".

[Link] Página | 18
Mesas
Como sabemos, um banco de dados é um conjunto de registros que consiste em várias tabelas dentro dele, portanto, agora use
outro comando para buscar todos os nomes de tabelas dentro do sistema de banco de dados.

sqlmap -u "[Link]
-D acuart --tabela --lote

-D:DBMS banco de dados para enumerar (nome do banco de dados recuperado)


–tabelas:enumerar tabela de banco de dados DBMS

Como resultado, dado na captura de tela, enumeramos todo o nome da tabela do sistema de banco de dados. Lá
existem 8 tabelas dentro do banco de dados "acuart" conforme segue:
T1: artists
T2: carts
T3: categ
T4: em destaque
T5: livro de visitas
T6: fotos
T7: products
T8: users

[Link] Página | 19
Colunas
Agora, a seguir, tentaremos enumerar o nome da coluna da tabela desejada. Como sabemos que há um
tabela de usuários dentro do banco de dados acuart e queremos saber todos os nomes das colunas da tabela de usuários,
portanto, geraremos outro comando para a enumeração dos títulos das colunas.

sqlmap -u "[Link]
-D acuart -T usuários --colunas --lote

-T: Banco de dados tabela para enumerar (nome da tabela buscada)


–colunas:enumerar colunas do banco de dados DBMS

[Link] Página | 20
Obter dados de uma tabela
Lentamente e gradualmente penetramos em muitos detalhes do banco de dados, mas o último e mais importante
o próximo passo é recuperar informações de dentro das colunas de uma tabela. Assim, por fim, geraremos um
comando que irá despejar informações da tabela de usuários.

sqlmap -u "[Link]
-D acuart -T usuários --dump --batch

–dump: despejar todas as informações do banco de dados do DBMS

Aqui, a partir da captura de tela fornecida, você pode ver que é necessário despejar toda a informação da tabela usuários, principalmente
users table contains login credential of other users. You can use these credential for login into the
servidor em nome de outros usuários.

[Link] Página | 21
Descarregar Tudo

O último comando é o comando mais poderoso do sqlmap que irá economizar seu tempo no banco de dados
teste de penetração; este comando executará todas as funções acima de uma vez e despejará todo o
informações do banco de dados, incluindo nomes de tabelas, colunas etc.

sqlmap -u "[Link] -D acuart --


dump-all --batch

Isso fornecerá todas as informações de uma só vez, que contêm o nome do banco de dados, bem como os registros da tabela.
Tente você mesmo!!!

[Link] Página | 22
[Link] Página | 23
Explorando Injeção SQL Baseada em Formulário usando
Sqlmap
Insira usuário e senha como abelha e inseto, respectivamente.
Defina o nível de segurança, escolha seu bug na caixa de seleção SQL-Injection (formulário de login/Hero) agora e
clique no hack.

Um formulário de login é aberto, onde é solicitado que se envie as credenciais de um super-herói que não conhecemos.
So I am going to give any random login and password like iron: man, in order to capture the request
através do burp suite.

[Link] Página | 24
Para capturar a solicitação do bWAPP, clique na tag do proxy e depois clique no botão Inception está ativado, venha
volte para o bWAPP e agora clique para fazer login. Use os dados destacados nas interceptações dentro dos comandos do sqlmap.

Agora abra o terminal do seu Kali Linux e digite o seguinte comando para a enumeração de
nomes de bancos de dados.

sqlmap -u [Link] --
data="login=iron&amp;password=man&amp;form=submit" --
método POST --dbs --batch

[Link] Página | 25
A partir do resultado da enumeração, obtemos a informação de que o sistema de gerenciamento de banco de dados back-end é
MYSQL 5.5 e sistema operacional do servidor web é Windows com Apache 2.4.7 e PHP 5.5.9 e buscar
todos os nomes do banco de dados. Então, se você notar a imagem abaixo, pegamos todos os nomes de
bancos de dados. Escolha qualquer nome para obter mais detalhes.

Agora digite o comando abaixo que tentará buscar todos os dados dentro do banco de dados do bwapp

sqlmap -u [Link] --
data="login=iron&amp;password=man&amp;form=submit" --
método POST -D bwapp --dump tudo --batch

[Link] Página | 26
Primeiro encontrei uma tabela "BLOG" que contém quatro colunas, mas esta tabela parece estar vazia, pois todas
os campos estão em branco.

Em seguida, encontrei a tabela "MOVIES" no banco de dados bwapp e você pode ver pela captura de tela fornecida que ela contém
movies detail. There are 10 entries in each of the following column.

Felizmente!!! Eu tenho dados que contêm id, login, senha e entradas secretas dentro dos "HERÓIS"
tabela e talvez esses dados despejados possam me ajudar a contornar a página de login da página da web acima que
temos aberto no navegador. Usarei o login e a senha mais tarde para verificar.

[Link] Página | 27
Aqui eu encontrei apenas três entradas para a tabela "USERS" dentro do bwapp, que também contém credenciais para
a conta de administrador.

Outra tabela vazia "VISITANTES" como a tabela "blog", também está deixada em branco.
O sqlmap despejou muitos dados de dentro do banco de dados do bwapp, como você viu, eu consegui
dados de uma tabela diferente, agora vamos verificar este resultado. Navegue no bwapp em localhost novamente e uma vez
abra novamente a página do formulário de login dentro do bwapp.

Se você se lembrou, o sqlmap extraiu a tabela de "HERÓIS" que contém login e senha agora
usando os dados obtidos acima (Thor: Asgard) da tabela "heróis", usarei estas credenciais
para login.

[Link] Página | 28
Agora digite thorin no campo de texto fornecido para login e, em seguida, digite Asgard como senha. Clique em login.

Parabéns!!! Conseguimos o login bem-sucedido e você pode ler o segredo dado para Thor que é exatamente o mesmo que
dentro da tabela "heróis".
Conclusão: Através deste artigo, aprendemos como realizar um ataque em um formulário de login de um site.
site e recuperar seus dados do banco de dados.

[Link] Page | 29
[Link] Página | 30
Exploração de Injeção SQL em Múltiplos
Alvos usando Sqlmap
Start dvwa and select SQL injection vulnerability here type user ID andclickonsubmit,
agora copietheURL.

Inicie o Kali Linux e crie um arquivo de texto [Link] na área de trabalho que conterá URLs para múltiplos.
mire e cole a URL copiada em um arquivo de texto. Na captura de tela, você pode perceber que eu colei
acima da URL neste arquivo de texto e salvar como [Link]

[Link] Página | 31
Repita o mesmo processo com um site diferente. Agora abra [Link], aqui clique no URL fornecido.
forAcuart.

Agora clique em navegar pelas categorias e depois clique no cartaz

[Link] Página | 32
Agora vamos verificar se o ID é vulnerável a injeção de SQL ou não. Use este apóstrofo (‘) no final
do URL como mostrado na captura de tela. Você pode ver que recebi uma mensagem de erro, o que significa que o ID
é vulnerável a injeção [Link]

Cole a URL copiada acima no [Link] e salve novamente. Assim, aqui eu salvei duas URLs em um arquivo de texto.
o que significa que dois IDs vulneráveis de diferentes webs estão salvos no arquivo [Link].

[Link] Página | 33
Abra o terminal e digite o seguinte comando para escanear vários alvos através do sqlmap para SQL
injeção.

sqlmap–m /root/Desktop/[Link]–dbs --batch

Então aqui você pode ver que eu tenho nomes de bancos de dados para múltiplos alvos. Aqui eu encontrei dvwaunder
nomes de banco de dados.

Mais tarde eu tenho outro banco de dados chamado acurat. Agora tente você mesmo para múltiplos IDs.

[Link] Página | 34
Referência:

• [Link]
• [Link]
• [Link]
• [Link]

[Link] Page | 35
[Link] Página | 36
About Us
Treinamento simples faz Aprendizado Profundo

“IGNITE” é um nome mundial no campo da TI. Oferecemos treinamento em cibersegurança de alta qualidade e
serviços de consultoria que atendem às necessidades de estudantes, governo e empresas.
Estamos trabalhando para a visão de "Desenvolver a Índia como um País com Cibersegurança". Com uma abordagem
para mais de oitenta mil estudantes e mais de mil faculdades importantes, a Ignite Technologies se destacou
ser uma marca confiável na Educação e na estrutura de Segurança da Informação.

Oferecemos treinamento e educação na área de Hacking Ético e Segurança da Informação para o


estudantes de escolas e faculdades junto com o mundo corporativo. O treinamento pode ser fornecido na
localização do cliente ou mesmo no Centro de Treinamento da Ignite.
Treinamos mais de 10.000 indivíduos em todo o mundo, variando de estudantes a especialistas em segurança.
de diferentes áreas. Nossos treinadores são reconhecidos como Pesquisadores de Segurança pelas principais empresas como
- Facebook, Google, Microsoft, Adobe, Nokia, Paypal, Blackberry, AT&T e muitos outros. Até mesmo o
estudantes treinados são colocados em várias das principais MNCs ao redor do mundo. Além disso, estamos
possuindo experiência internacional de treinamento de mais de 400 indivíduos.

As duas marcas, Ignite Technologies e Hacking Articles, têm trabalhado colaborativamente no passado
Mais de 10 anos com mais de 100 pesquisadores de segurança, que por si mesmos foram reconhecidos por
várias organizações de publicação de artigos de pesquisa, as Big 4 empresas, programas de pesquisa de Bug Bounty
e muitos mais.

Juntamente com todas essas coisas, todas as principais organizações de certificação recomendam o treinamento da Ignite por seu
recursos e orientações.
A pesquisa da Ignite fez parte de uma série de institutos e faculdades globais, e até mesmo de uma multiplicidade de
artigos de pesquisa compartilham os pesquisadores do Ignite em sua referência.

[Link] Página | 37
[Link] Página | 38
[Link] Página | 39

Você também pode gostar