e 3, como no primeiro exemplo, entao usaremos na URL os lugares respectivos ao 3 para nossos objetivos e os outros numeros, mesmo o 4 e o 5, substituimos por null, ou nao...A Sun, que produz o MySQL quis facilitar o trabalho dos hackers administradores criando um banco de dados que armazena praticamente todas as informacoes interessantes, como nomes de conexoes de bancos de dados, tabelas, colunas entre outras. A partir da versao 5.0 do MySQL temos a DB information_schema, que e amplamente utilizada em SQL.Dentro da information_schema, temos as tabelas tables e columns que sao muito importantes, creio que nao seja necessario explicar o que elas guardam; dentro delas, ha colunas que guardam todos os nomes de tabelas e colunas do sistema.Alem disso, ha uma tabela em especial, que guarda a DB das tabelas e colunas definidas pelo administrador, a table_schema, que tambem sera utilizada.Primeiramente, vamos descobrir se estamos em um site com o MySQL anterior a 5.0, utilizando o seguinte depois da URL:null union select 1,2,@@version,4,5 Resumidamente, o @@version e uma variavel global que guarda a versao do sistema de banco de dados. Baseados nos resultados, que sempre tem o numero da versao, temo-no...Se estamos em um site que utilize 5.0 ou posteriores, otimo. Se nao, entao teremos que chutar os nomes das tabelas, seguindo padroes de administracao, e todo o papo que se refere a information_schema e inutil.Alguns exemplos de @@version: -5.0.67 community5.0.67 community //13--//235.0.67 -community-Comecamos descobrindo as tabelas no banco de dados que ja descobrimos, o database, adicionando o seguinte a URL com o null que estavamos usando:null union select 1,2,table_name,4,5 from information_schema.tables where table_schema=database limit 0,1 Nao e preciso dizer, e pedido um nome de tabela a information_schema.tables, quando a DB for database. Se tudo correr bem, teremos um nome de tabela:-5 2artigos-Perfeito, descobrimos uma tabela, mas o nome dela e noticias, seu conteudo, deduzimos, nao e muito util para nos, a menos que queiramos fazer um defacement.Sobre o defacement, e preciso descobrir as colunas da tabela, isso nos veremos adiante.E agora, como fazemos para descobrir mais tabelas?Note que na query anterior, utilizei limit 0,1 no final. O limit servira como um cursor entre as tabelas. Para avancar para a proxima tabela, utilizamos limit 1,1, depois limit 2,1 e assim sucessivamente, ate encontrar todas as tabelas.Supondo que tenhamos encontrado as tabelas noticias, discursos,compromissos, login e teste. E altamente deduzivel o conteudo de cada uma, e basta prestar um pouco de atencao para perceber que os usuarios e senhas estao armazenados na tabela login...Agora sera necessario descobrir as colunas de cada tabela, ja que sem as colunas (onde estao guardados os dados e logins), nao conseguimos obter dados. Seria como tentar acertar o meio de um alvo, sem a mosca.Obter os nomes das colunas e muito parecido com obter as tabelas:null union select 1,2,column_name,4,5 from information_schema.columns where table_name=login limit 0,1 E assim utilizamos o LIMIT novamente como cursor.Otimo, temos o nome de todas as tabelas, e as colunas da(s) tabela(s) que nos interessa(m), muito bom, e agora, como fazer para obter usuarios e senhas, de nossa conhecida tabela