tudo se torna mais esclarecido.MySQLTomemos como exemplo ficticio um site cujo endereco e http://site.com.br. Neste site temos varias paginas, e uma delas e a noticias.php.Acessando o endereco http://site.com.br/noticias.php?id=10 recebemos o seguinte erro:-You have an error in your SQL syntax; check the manual that corresponds to yourMySQL server version for the right syntax to use near at line 1.-Isso significa que esta vulneravel. Se aparecer, otimo, se nao aparecer, nao desista! E extremamente comum encontrar sites em PHP que nao exibem a mensagem e estao vulneraveis. De qualquer modo, vale a pena tentar se aprofundar antes de simplesmente largar o site. Na verdade, esse passo nao e estritamente necessario...Com um site em maos, vamos encontrar o numero de colunas da tabela que esta sendo usada para guardar as noticias, e a partir dai descobrir mais sobre o banco de dados inteiro. Utilizaremos o ORDER BY para tanto.Vamos tentar numero por numero ate chegar ao numero certo de colunas, adicionando o seguinte apos a URL , sem o que estiver entre os parenteses:order by 2 (noticia exibida)order by 3 (noticia exibida)order by 4 (noticia exibida)order by 5 (noticia exibida)order by 6 (erro)Quando a noticia nao e exibida, temos o seguinte erro:-Unknown column 6 in order clause-Sabemos agora que a nossa tabela tem apenas cinco colunas geralmente temos mais, ja encontrei sites com dez colunas na tabela podemos utilizar o UNION para explorar o banco de dados inteiro.E possivel deduzir que em uma query do tipo SELECT titulo, texto, autor, os resultados serao exibidos na pagina.Com o UNION descobrimos quais resultados sao exibidos na pagina e vamos substituir os resultados por qualquer outra query.A partir de agora e interessante substituir o numero do id da noticia por null, que nao ira retornar nenhuma noticia e ira facilitar/permitir nosso trabalho.Mas antes de descobrir o resto do sistema de MySQL, e racional descobrir o banco de dados em que estamos, afinal, imagine um site com mais de uma conexao de banco de dados criada pelo administrador, em qual estamos?Utilizemos o seguinte esquema, apos a URL:null union select 1,2,3,4,5 from NOTEXIST Um erro semelhante a este e exibido:Table database.NOTEXIST doesnt existO que acabamos de fazer e requisitar uma tabela que nao existe, sem definir a conexao de banco de dados a que ela pertence, e o sistema, por padrao, adota a conexao atualmente utilizada, que no caso e database. Os dois tracos no final, sao sinais de comentarios em SQL MySQL, para ignorar o resto da query que geraria um erro por causa do apostrofo de fechamento.Agora ja podemos descobrir mais sobre o banco de dados em que estamos, inclusive possiveis tabelas que guardam informacoes de login. Para tanto, necessitamos descobrir que resultados de query sao exibidos na pagina; utilizemos esta forma:null union select 1,2,3,4,5 Os resultados variam de pagina para pagina, mas seria exibido algo como isso:-Noticias22 //13-Outro exemplo de displaying e este:-Noticias5 24+ FOTOS (clique na foto para ampliar)Outras Materias: 4/1/1933 3-Entao, escolhemos um ou mais numeros que sao exibidos para explorar todo o sistema de banco de dados.Supondo que na tela sejam exibidos 1, 2