A principal ideia é, demonstrar como é fácil fazer testes de vulnerabilidades em banco de dados em sites dinâmicos, utilizando a ferramenta sqlmap dentro do backtrack 5 released 3.
SQL – Structured Query Language, traduzindo é: Linguagem de Consulta Estruturada, desenvolvido na década de 70 nos laboratórios da IBM.
Essa linguagem tornou-se uma linguagem universal para criação, edição e inserção de dados em banco de dados.
Os sites de internet dinâmicos, utilizam banco de dados para diversas aplicações dentro do site, autenticar usuários, armazenar informações sobre clientes e demais necessidades.
O problema está em algumas falhas dessas aplicações, os bancos de dados tem que ter algumas restrições, permissões e códigos bem definidas pelo desenvolvedor do banco de dados.
Para testar essas possíveis vulnerabilidades, tem algumas ferramentas que verificam se o banco de dados está vulnerável, há um tipo de ataque chamado Sql Injection.
Essa técnica de ataque permite o atacante ver as configurações do banco de dados, descobrindo o nome do banco de dados, conseguir ver e acessar as informações das tabelas, além é claro conseguir ver os registros cadastrados nos campos.
No BackTrack5, tem uma ferramenta que faz esse teste.
Na internet há um site próprio para você fazer testes das ferramentas que usaremos a seguir.
Dentro do site, http://testphp.vulnweb.com, do lado esquerdo há um campo de busca, digite qualquer “palavra” para pesquisa, o site irá fazer a busca na base de dados, após copie o link que o site disponibilizou, geralmente é mostrado um link como este, http://testphp.vulnweb.com/search.php?test=query, esse link é o que será utilizado pela ferramenta de pentest para verificar a vulnerabilidade.
Figura 1 – Site da empresa acunetix – endereço que permite fazer testes de sql injection
Após, no seu BackTrack5, entre dentro do diretório que contém o script em Phyton (linguagem de programação) para testar a vulnerabilidade.
/pentest/database/sqlmap
Figura 2 – Mostra o terminal do BackTrack5 dentro do diretório /pentest/database/sqlmap
digite:
python sqlmap.py -u http://testphp.vulnweb.com/search.php?test=query –dbs
Explicando a linha de comando:
python = executa o compilador do script
sqlmap.py = script feito na linguagem python
-u = indicador da url do site
–dbs = após aplica o script procure por database (banco de dados)
Figura 3 – comando para iniciar o script indicando o link completo do site após a busca
Após o comando acima, é encontrada no site de testes o nome do banco.
Chama-se acuart
Figura 4 – Mostra o nome do banco após o script explorar a vulnerabilidade
Agora iremos entrar dentro do banco.
Digite:
python sqlmap.py -u http://testphp.vulnweb.com/search.php?test=query -D acuart – – tables
Explicação
-D acuart = entrar dentro da base chamada acurart ( pois poderia ter encontrado outro banco de dados dentro do endereço)
– – tables = listar as tabelas que está dentro do banco.
Figura 5 – Resultado da solicitação de listagem de tabelas dentro do banco.
Após visualizar as tabelas que estão dentro do banco, aplica-se o comando para entrar dentro de uma das tabelas. Entraremos dentro da tabela chamada users (para descobrir o nome e senha que os usuários tem dentro do site testphp)
Digite:
python sqlmap.py -u http://testphp.vulnweb.com/search.php?test=query -D acuart -T users – – columns
Figura 6 – Comando para listar as colunas da tabela users
Onde o comando users é a tabela chamada users e a opção – – colums irá mostrar as colunas da tabela.
Figura 7 – Listagem de todos os campos e tipos dos campos da tabela user.
Após, a tabela users, que está dentro do banco, aplica-se um comando para listar os campos “nome e senha” da tabela users.
Digite:
python sqlmap.py -u http://testphp.vulnweb.com/search.php?test=query -D acuart -T users – C ‘name,pass’ – – dump
Obs.: o sinal ‘ name,pass’ são aspas simples
Figura 8 – Comando para listar o conteúdo da tabela user solicitando os campos nome, senha e e-mail cadastrados no banco de dados.
Onde o campo ‘name’ trará o nome do usuário cadastrado na tabela e o campo “pass” irá mostrar a senha cadastrada para o usuário do site.
Lembrando que o site testphp.vulnweb.com é um site para que o aluno possa testar técnicas para adentrar em um sistema web por falhas no banco de dados.
Figura 9 – Tela com os campos e seus respectivos registros dentro da tabela users
O banco de dados mostrado, é apenas um banco de dados para devidos testes de vulnerabilidade em banco de dados, com suporte a comandos SQL (quase todos aceitam).
Buscar por sites que tenham determinada vulnerabilidade, no site de busca google, você poderá utilizar a busca por apenas URL
inurl: *.php?id=
Essa busca não quer dizer que o site esteja vulnerável a esse tipo de ataque, mais pode haver essa possibilidade.
Esse tutorial tem por finalidade ser teórico e ao mesmo tempo prático, referente as vulnerabilidades encontradas em banco de dados.