Unconfigured Ad Widget

Collapse

Anúncio

Collapse
No announcement yet.

Blind SQL Injection - Avançado

Collapse
X
 
  • Filter
  • Tempo
  • Show
Clear All
new posts

  • Font Size
    #1

    Tutorial Blind SQL Injection - Avançado

    Eai galéra pelo que eu tenho visto aqui muitas pessoas ainda não dominam o Blind Sql pois é uma coisa dificil então resolvi postar um tuto sobre o mesmo espero que ajude nos estudos de muitas pessoas


    ::: BLIND SQL INJECTION :::

    Já que alguns sites quando tentamos realizar um SQLi com Union ou um "clássico", mesmo quando sabemos que estão vulneráveis, não retornam nenhum erro, dificultando a exploração da vulnerabilidade.
    Neste tutorial irei usar um site fictício como exemplo hehe

    Vamos supor que temos o seguinte site, aberto em uma notícia:

    Apenas usuários registrados e ativados podem ver os links., Clique aqui para se cadastrar...

    Após scanearmos ele descobrimos que existe uma falha, e está vulnerável a SQL. Até então tudo bem, porém quando tentamos utilizar o comando Union, não é retornado nenhum erro. Sabendo isso iremos tentar utilizar a técnica do Blind SQL Injection. Para isto iremos verificar se ele está vulnerável mesmo:

    Apenas usuários registrados e ativados podem ver os links., Clique aqui para se cadastrar... And 1=1
    (A página carregará normal em todos os casos)

    Agora veremos realmente se está vulneravel:

    Apenas usuários registrados e ativados podem ver os links., Clique aqui para se cadastrar... And 1=2
    (Se aparecerem numeros avulços, datas, etc. Ou se tiverem faltando figuras. O site é vulnerável.)

    Agora precisaremos descobrir a versão do servidor MySQL.
    Para isto utilizaremos SUBSTRINGS.

    Apenas usuários registrados e ativados podem ver os links., Clique aqui para se cadastrar... And Substring(@@Version,1,1)=5
    (Se a versão do MySQL for 5, então o site não retornará erro. A página será carregada normal.)

    Agora, se estiver faltando algo, imagens, textos, ou aparecer numeros e datas, a versão do MySQL provavelmente será a 4. Para comprovar isto:

    Apenas usuários registrados e ativados podem ver os links., Clique aqui para se cadastrar... And Substring(@@Version,1,1)=4
    (Se a versão do MySQL for 4, então o site não retornará erro. A página será carregada normal.)

    Como já temos a versão do MySQL podemos proceder.
    Agora iremos verificar se o comando SUBSELECT funciona. Quando o SELECT não funciona utilizamos ele.

    Para verificarmos iremos fazer isto:

    Apenas usuários registrados e ativados podem ver os links., Clique aqui para se cadastrar... And (Select 1)=1
    (Caso a página seja carregada normal, então o SUBSELECT funciona.)

    Nesta parte iremos descobrir os nomes das tabelas e das colunas. Iremos usar uma técnica muito utilizada: CHUTE rsrs
    Teremos como base os nomes mais comuns, como: admin, users, adm, usuarios, usuario ...

    Vamos descobrir a tabela:

    Apenas usuários registrados e ativados podem ver os links., Clique aqui para se cadastrar... And (Select 1 From admin Limit 0,1)=1
    (Se a página carregar normal, sem nada faltando, ou numeros na tela, acertamos a tabela! Caso contrário você deve continuar testando até encontrar a certa)

    Para descobrirmos o nome das colunas agora:

    Apenas usuários registrados e ativados podem ver os links., Clique aqui para se cadastrar... And (Select Substring(Concat(1,Senha),1,1) From Admin Limit 0,1)=1
    (Então, se a página carregar normal, é porque a coluna Senha existe na tabela Admin!)

    Então vamos verificar se a coluna Usuario existe:

    Apenas usuários registrados e ativados podem ver os links., Clique aqui para se cadastrar... And (Select Substring(Concat(1,Usuario),1,1) From Admin Limit 0,1)=1
    (Então, se a página carregar normal, é porque a coluna Usuario existe na tabela Admin!)

    Vamos supor que deu certo as colunas Usuario e Senha na tabela Admin. Então precisamos descobrir estes dados.
    Esta parte é mais complicada, e demorada. Teremos que descobrir letra por letra dos campos, em ASCII. Por isto recomendo este site, que possui o alfabeto inteiro em ASCII:

    Apenas usuários registrados e ativados podem ver os links., Clique aqui para se cadastrar...

    Para descobrirmos os dados, faremos assim:

    Apenas usuários registrados e ativados podem ver os links., Clique aqui para se cadastrar... And ASCII(Substring((SELECT Concat(Usuario,0x3a,Senha) From Admin Limit 0,1),1,1))>65

    No código acima nós iremos descobrir a primeira letra em ASCII da coluna Usuario da tabela Admin. Reparem que está ">65". O "65" é o equivalente ao "A" em ASCII. Então deveremos ir incrementando ele até o servidor retornar o erro. O número antes do erro é o nosso caractere.
    Assim se desse erro seria algo parecido "maior que 65"

    Para quem não entendeu a explicação vai um exemplo...

    Ex:

    >95 - Erro
    >96 - Erro
    >97 - Página carregada normal.
    Assim nosso caractere em ASCII é o 97, equivalente ao "a".

    Vamos então descobrir o segundo caractere:

    Apenas usuários registrados e ativados podem ver os links., Clique aqui para se cadastrar... And ASCII(Substring((SELECT Concat(Usuario,0x3a,Senha) From Admin Limit 0,1),2,1))>65

    Fomos incrementando até o 112, que significa "p".
    Então temos "ap".
    Para descobrir também quantos caracteres possuem basta ir incrementando o "2,1", "3,1" até a página não ser carregada com sucesso!

    Agora você só precisa incrementar mais! Vou parar por aqui hehe!

    ::: CONCLUSÃO :::

    A técnica Blind SQL Injection é mais complicada do que a do SQL Injection Clássico, como puderam perceber na matéria acima. Fiz ela com o intuito de passar a vocês o conhecimento da fantástica técnica que é o SQL Injection Quando bem explorada pode ser fatal.
    Blind SQL Injection exige muito estudo, e persistência, porque você obrigatóriamente precisa fazer o servidor revelar a você letra por letra do usuario, senha etc. Mesmo podendo fazer tudo manualmente, existem diversos programas que facilitam muito a vida de todos que utilizam a técnica do SQL Injection!
    Espero que todos tenham gostado do tutorial, e que ele sirva como fonte de estudo para muitos!

    Autor: Rahackzin







    Obs: não é de minha autoria ,creditos ao autor no fim do tutorial
    Tem Hackers que usam os 10 dedos da mão para digitar, sem desperdiçar o dedão na barra de espaçosigpic

  • Font Size
    #2
    caramba, parabens mano, ótimo tutorial! pena que só da 1 obrigado xD, vlw!

    Comment


    • Font Size
      #3
      muito bom, estou começando a estudar blind injection.

      Comment

      X
      Working...
      X