Buscar

Ferramentas

sqlmap

Ferramenta open source de pentest que automatiza a detecção e a exploração de SQL injection, para usar só em sistemas próprios ou com autorização.

  • Segurança
  • Open Source
sqlmap

Se um campo de formulário aceita SQL injection, o sqlmap descobre e mostra até onde um atacante chegaria. É um programa de linha de comando, escrito em Python, que automatiza a detecção e a exploração dessa falha. O uso legítimo exige que o sistema seja seu ou que o dono tenha autorizado o teste por escrito, com escopo definido.

Para que serve

  • Confirmar se um parâmetro é vulnerável, testando cinco técnicas: blind por booleano, blind por tempo, baseada em erro, UNION e consultas empilhadas.
  • Identificar o banco por trás da aplicação entre mais de 40 suportados, como MySQL, Oracle, PostgreSQL, SQL Server, Redshift, Snowflake e ClickHouse.
  • Listar bancos, tabelas e colunas e extrair os dados que o usuário da aplicação alcança, para medir o impacto no relatório.
  • Verificar se a falha dá acesso ao sistema de arquivos ou a comandos do sistema operacional, quando o banco permite.

Como começar

O sqlmap roda com Python 2.7 ou 3.x em qualquer sistema. Clone o repositório:

git clone --depth 1 https://github.com/sqlmapproject/sqlmap.git sqlmap-dev

Dentro da pasta, python sqlmap.py -h mostra as opções básicas e python sqlmap.py -hh lista todas. O manual fica no wiki do projeto. Antes do primeiro teste, acerte o escopo com o cliente: o post sobre o que é pentest explica o que precisa estar no acordo.

Licença e custo

O arquivo LICENSE traz a GPL versão 2 ou posterior, com esclarecimentos dos autores. Eles leem "obra derivada" de forma ampla: um programa que executa o sqlmap e interpreta a saída dele já conta como derivado e herda a GPL. Quem quiser embutir o sqlmap num produto fechado compra uma licença comercial dos autores. Para rodar no seu terminal, não há custo.

Quando vale a pena

Pentesters e times de segurança de aplicação usam o sqlmap para provar que uma injeção existe e, depois, para conferir se a correção fechou a falha. Fora de um teste autorizado, apontar a ferramenta para o site de outra pessoa é invasão. Se o objetivo é varrer muitos alvos atrás de falhas conhecidas, use o Nuclei, e a gestão de vulnerabilidades ajuda a decidir o que corrigir primeiro.