vou explicar o concept num modo esquematizado porque ele e muito extenso e variavel conformo o contexto
mas num modo geral se trata de um cliente (internet explorer) que vai enviar dados para um servidor web (apache)
1) o charset (jogo de caracteros)
existem um monte de jogo de caracteros que sao usados em informatica, esses jogos sao definido em tabelas onde tem os caracteros e as equivalenças em indice exadecimal :
- os derivados ISO que geralmente sao usados na europa
- utf-8 o tal de unicode que represente quase todos o caracteros
- big indian nunca nem usei - lol
e mais um monte
2) o content-type
para nao ter confusao entre o cliente e o servidor, vamos informar sobre o type de dados enviados
Content-Type: text/plain;
Content-Type: text/javascript;
Content-Type: java.lang.string
Content-Type: octet-stream
Content-Type: application/x-www-form-urlencoded
etc.....
3) o content transfer encoding
Content-Transfer-Encoding: 8bits
Content-Transfer-Encoding: 7bits
Content-Transfer-Encoding: quoted-printable
Content-Transfer-Encoding: base64
Content-Transfer-Encoding: gzip
Content-Transfer-Encoding: binary
etc......
4) o header
o header e a soma das informaçoes mandadas pelo programa antes do proprio conteudo
ele vai ajudar o programa que vai receber os dados a classificar eles num modo correto para tratar los no modo certo
5) esquema
vou tentar injetar um codigo meio malicioso no servidor mysql :
IE ==> apache ==> php ==> mysql
ou seja os dados vao ser tratados por 3 serviços diferentes, sendo que cada um tem um jeito proprio de lidar com os charsets.
a jogada seria entao de conseguir passar um aspa numa forma que o php nao reconhece e nao vai escapar, assim o bug no mysql seria guarantido
talvez algums servidores ainda sao vulneraveis a isso :
o caso do urlencoded vai mandar o aspa como %27, o apache repasse para php que mande para mysql. so que o mysql vai converter o %27 num aspa
entao a jogada do multibyte e de mandar o codigo malicioso num charset que nao vai ser convertido pelas funçoes qui filtram os dados antes de repassar o resultado filtrado para mysql num modo em que o mysql vai conveter aquele codigo na hora de inserir no banco de dados
+- isso
rog
Muito interessante esse conceito rog...
A parte do passou despercebido, você quer dizer pelo forum, ou pelo brasil?
Parabens. otimo conteudo
Rog, além do %27, você tem outros exemplos? E como saber os equivalentes?
...by Cloudy