Notícia

Descobrindo falhas de SQL Injection com SQLmap

28/07/2021

Conheça o mundo misterioso de CyberSecurity e acompanhe os artigos e matérias que o Prof. Wagner  da  CD6 – Desenvolvimento de Pessoas e Negócios, vem trazendo para os alunos do curso de Segurança da Informação e é claro também aos interessados por essa matéria.

O SQLMap é um scrip de exploração de falhas de SQL Injection.
Vou usar as falhas e descobertas durante o post:  Encontrando Falhas em Aplicações Web com Uniscan para realizar os exemplos desta postagem.
Um complementa o outro, então se você ainda não viu, recomenda que estude os exemplos dele primeiro.

Vou pegar para o exemplo a váriável http://testphp.vulnweb.com/artists.php?artist=1 AND 1=1 --dbs

A sintaxe ficaria sudo ./sqlmap.py -u http://testphp.vulnweb.com/artists.php?artist=1 AND 1=1 --dbs


O SQLmap vai realizar vários testes no parâmetro até identificar o tipo de banco de dados que está rodando e se a variável é mesmo injetável.
Neste exemplo, a vulnerabilidade foi positiva.
Conseguimos identificar a existência de dois bancos rodando. O information_schema que é padrão do MySQL e um banco chamado "acuart". Vamos explorá-lo para ver o que conseguimos achar.

Vamos injetar mais scripts na variável, desta vez para que ela retorne as tabelas do banco.

sudo ./sqlmap.py -u http://testphp.vulnweb.com/artists.php?artist=1 AND 1=1 -D acuart --tables


O Scrip nos retornou 8 tabelas do MySQL

 

Vamos executar o próximo passo em cima da tabela users, que provavelmente contenha alguma informação relevante como logins, e-mails, senhas e outras informações pessoais. Mas primeiro vamos identificar as colunas na tabela inserindo mais um dump de scrips do SQLmap

sudo ./sqlmap.py -u http://testphp.vulnweb.com/artists.php?artist=1 AND 1=1 -D acuart -T users --columns


Podemos ver que o scrip nos trouxe mais informação. Ele identificou todas as 8 colunas da tabela 'users'. Podemos notar algumas informações importantes como name, uname, pass, email e cc que seria algum número de cartão de crédito.

 

Vamos fazer o select em forma de dump do SQLmap para extrair os dados dessas colunas. Vou fazer um teste extraindo só o que importa de início como nome, login e senha.

# sudo ./sqlmap.py -u http://testphp.vulnweb.com/artists.php?artist=1 AND 1=1 -D acuart -T users -C 'name,uname,pass' --dump

Podemos ver que ele nos retornou exatamente o que esperávamos, um nome, um login e uma senha desencriptada ainda por cima.

É claro que este site não é sério, ele apenas simula as falhas e deixam os pentesters tocarem o terror por um tempo e depois voltam o backup anterior dentro de alguns períodos do dia.
Em um ambiente real, não seria tão fácil assim. Provavelmente você encontraria hash com um ou mais níveis de criptografia etc. Mas deu para entender como a ferramenta funciona.


Vamos comprovar a falha:

http://testphp.vulnweb.com/login.php

login: test
senha: test

Perceba que conseguimos explorar a falha e obter acesso ao perfil do usuário.

Agora para dar aquela boa zoadinha de costume. Vamos realizar um exemplo de BRzagem.Agora vamos executar o script novamente para verificar as modificações no banco de dados da vítima

Gostou do conteúdo acima?
Vem pra CD6 e aprenda muito mais sobre as falhas de SQL Injection com SQLmap.

 

#teamCD6

Aguardamos a sua visita 😊

Voltar