Brunck 0 Denunciar post Postado Março 19, 2010 Não é de conhecimento de todos, mas todos os SGBDS (Sistemas de Gerenciamento de Banco de Dados), como MySQL, SQL Server, Prostgree, IBM SGBDS, etc, usam uma outra forma de reconhecimento de caracteres, que é a forma em hexadecimal ou em forma ASCII.Uma boa forma de explicar isso é você percebendo que todo espaçamento feitos em alguns navegadores é o %20, por exemplo:Você tendo que digitar um link e o link fica como estou%20sendo%20separado Tirando assim o espaço em vazio, pois na verdade não existe caractere vazio nos sistemas operacionais, todos eles são representados por vazio, mas na verdade isso não existe.Assim como os sistemas operacionais, os SGBDs usam dessa forma para reconhecer outros caracteres e assim representá-los em sua interface para o homem perceber mais fácil quais dados estão no banco de dados.Pronto, agora você entendeu como funciona o reconhecimento de caracteres nos bancos de dados, agora vou explicar como usar isso a seu favor.Todos nós sabemos que por trás dos mais protegidos servidores WEB há um sistema que bloqueia ou registra tudo que é feito nos sites ou sistemas de seu servidor.Mas para isso eles usam uma blacklist, Blacklistis são listas negras que fazem uma filtragem de conteúdo apenas bloqueando aquilo que foi dado, eliminando assim todo conteúdo pré definido pelo autor da lista.Blacklists são um tanto quanto vulneráveis, pois elas deixam que passem informações importantes para fazer o registro ou bloqueio.O software que faz o bloqueio ou registro se chama IPS (Intrusion Prevention System) e IDS (Intrusion Detection System), um previne e o outro detecta, respectivamente.O IPS e IDS usam de blacklists para fazer o bloqueio de informações, mas é claro que também fazem Whitelists, listas que contém apenas o que pode entrar no servidor.A grande falha dessas listas são realmente as blacklists, pois elas são quem deixam você executar comandos de uma forma que a lista não detecte como um tipo de invasão.Agora isso tudo está a nosso favor, já sabemos que os SGBDs reconhecem caracteres de forma diferente e sabemos que as blacklists só funcionam do modo que seu criador escreveu, então o que nós temos que fazer é apenas descobrir que tipo de padrão foram escritas essas blacklists e então burlar, ou seja, criar um padrão seu contra um padrão do IDS ou IPS.Esse padrão pode ser escrito de várias formas, tanto como colocar as letras em maiúsculo quando alternar entre minúsculo e maiúsculo, por exemplo:eU eStOu FaLanDo aSsIm Ou então colocar da forma descrita anteriormente:%65%75%20%65%73%74%6F%75%20%66%61%6C%61%6E%64%6F%20%61%73%73%69%6D Que significa a mesma coisa “eu estou falando assim”.Bom, essa é uma URL transcrita para a forma como o navegador lê o conteúdo e envia para o servidor, e então o servidor fará a transcrição para o significado real do que está ali e fará a requisição.Mas agora nosso problema são os bancos de dados, como explorar falhas nos bancos de dados sem nós sermos barrados por um IPS ou IDS?Bem, a forma é simples, você pode fazer tanto dessa forma aí quando fazer de uma forma para cada SGBD, por exemplo, o MySQL conseguiria interpretar o que está escrito aqui: CHAR(101,117,32,101,115,116,111,117,32,102,97,108,97,110,100,111,32,97,115,115,105,109) Que significa “eu estou falando assim”.Dessa forma nós poderíamos enviar qualquer dado em um comando de SQL sem que sejamos barrados por um sistema de detecção ou prevenção.É claro que há outros métodos para outros SGBDs e outras formas para burlar, mas isso nós veremos mais adiante.Créditos: Luís Guilherme Brunck Compartilhar este post Link para o post Compartilhar em outros sites