open core »

URL Encoding

Provavelmente já devem ter reparado, que em alguns sites quando olham para a barra de endereços encontram no URL caracteres que não fazem à partida nenhum sentido, como por exemplo:

http://www.site.pt/o%20meu%20ficheiro.php

Na realidade este endereço é o mesmo que:

http://www.site.pt/o meu ficheiro.php

Acontece que o computador não sabe o que são espaços nos nomes de ficheiros então dá-se uma conversão para código ASCII. Neste exemplo %20 é o código ASCII do caracter espaço em hexadecimal.

Isto pode no entanto ser perigoso para os utilizadores menos informados ou distraídos dado que podem receber por exemplo num e-mail um link como o seguinte:

http://www.site%0d%46%41%4c%53%4f.pt

Pode parecer que isto vai para ao endereço www.site.pt, mas na realidade vai para a www.site_falso.pt onde poderá estar à espera do utilizador uma réplica do site original para proceder à captura de dados sensíveis.

Este é só um dos muitos exemplos na aplicação do código ASCII de modo malicioso. Outro exemplo bastante comum é utilizá-lo para enviar num URL código Javascript:

http://site.pt/?variavel=%22%3E%3Cscript%3Ealert%28%27Ola%20Mundo%27%29%3C%2Fscript%3E

Este URL quando introduzido num site com vulnerabilidade XSS faz o site enviar um alert com a frase "Ola Mundo". Com um pouco de imaginação e conhecimentos de Javascript, conseguem-se fazer alguns estragos.

Aqui fica um link para o site da W3 Schools onde poderão ler um pouco mais sobre URL encoding:

http://www.w3schools.com/tags/ref_urlencode.asp