Ataques por manipulação de URL



Introdução aos URL

O URL (Localizador Uniforme de Recursos) de um aplicativo web é o vetor que permite indicar o recurso solicitado. É uma cadeia de caracteres ASCII que pode ser impressa e que se decompõe em cinco partes:


O nome do protocolo: quer é, de certa maneira, a linguagem utilizada para se comunicar na rede. O protocolo mais utilizado é o HTTP (HyperText Transfer Protocol), que permite a troca das páginas web no formato HTML. No entanto, existem outros protocolos utilizáveis (FTP, News, Mailto, etc.).

Nome de usuário e senha: permite definir as configurações de acesso a um servidor seguro. Esta opção é desaconselhada porque a senha circula no URL sem codificação.

O nome do servidor: é o nome de domínio de um computador que aloja o recurso pedido. Saiba que é possível utilizar o endereço IP do servidor.

O número de porta: é o número associado a um serviço que indica ao servidor o tipo de recurso pedido. A porta relacionada por padrão ao protocolo é a porta número 80. Assim, quando o serviço Web do servidor é associado ao número de porta 80, a especificação do número de porta é facultativa.

O caminho de acesso ao recurso: esta última parte indica ao servidor onde se encontra o recurso que, geralmente, é o lugar (diretório) e o nome do arquivo solicitado.

Um URL possui a seguinte estrutura:


Protocolo Senha (opcional) Nome do servidor Porta
(opcional se 80)
Caminho
http http://user:password@br.ccm.net:80/glossair/glossário.php3

O URL pode permitir a transmissão de configurações ao servidor, colocando um ponto de interrogação depois do nome do arquivo e dos dados no formato ASCII. Um URL é uma cadeia de caracteres com o seguinte formato:

http://br.ccm.net/forum/index.php3?cat=1&page=2

Manipulação do URL

Ao manipular certas partes de um URL, um hacker pode levar um servidor web a emitir páginas web às quais, supostamente, não teria acesso. Nos sites web dinâmicos, as configurações são, em sua maioria, transferidas pelo URL da seguinte maneira:
http://target/forum/?cat=2


A página web cria, automaticamente, os dados contidos no URL ao navegar normalmente, o usuário apenas clica nos links propostos pelo site. Assim, se um usuário alterar manualmente a configuração, ele pode testar diferentes valores, como por exemplo:
http://target/forum/?cat=6
. Se o desenvolvedor não previu esta eventualidade, o hacker pode, eventualmente, ter acesso a uma área geralmente protegida. Além disso, o hacker pode levar o site a tratar um caso inesperado, como por exemplo:
http://target/forum/?cat=***********
.

No exemplo acima, se o desenvolvedor do site não tiver previsto a possibilidade do dado não ser representado por um número, o site pode entrar num estado não previsto e revelar informações numa mensagem de erro.

Teste e erro

Um hacker pode testar diretórios e extensões de arquivo aleatoriamente, para encontrar informações importantes. Veja alguns exemplos clássicos:


Busca de diretórios para poder administrar o site:

http://target/admin/ http://target/admin.cgi

Busca de uma sequência de comandos para revelar informações sobre o sistema remoto:

http://target/phpinfo.php3

Busca de backups. Geralmente, usa-se a extensão BAK, a que não é interpretada por padrão pelos servidores, para que você possa visualizar uma sequência de comandos:

http://target/.bak

Procura de arquivos ocultos no sistema remoto. Nos sistemas UNIX, podemos acessar os arquivos criados pelos sistema pela web sempre que o diretório raiz da página web corresponda ao diretório de um usuário:

http://target/.bash_history http://target/.htaccess

Cruzamento de diretórios

O ataque chamado Cruzamento de diretórios (Directory traversal ou Cruzamento de rota) altera a estrutura da arborescência do caminho no URL para fazer com que o servidor tenha acesso a partes não autorizadas do site.

Um exemplo típico é quando o usuário pode ser levado a retroceder na arborescência, principalmente quando não tem acesso ao recurso:

http://target/base/test/ascii.php3 http://target/base/test/ http://target/base/

Nos servidores vulneráveis, o hacker só precisa retroceder pelo caminho com várias cadeias do tipo “ ../”:

http://target/../../../../directory/file

Os ataques mais evoluídos codificam certos caracteres.:

Seja sob a forma de codificação de URL:

http://target/..%2F..%2F..%2Fdirectory/file

Seja com uma notação Unicode:

http://target/..%u2216..%u2216directory/file


Muitos sites dinâmicos transferem os nomes das páginas visualizadas como parâmetros em uma forma parecida com esta:

http://target/cgi-bin/script.cgi?url=index.htm

Se as verificações não foram realizadas, um hacker pode modificar o URL manualmente, para solicitar o acesso a um recurso do site ao qual não tem acesso diretamente, por exemplo:

http://target/cgi-bin/script.cgi?url=script.cgi

Contramedidas

Para proteger um servidor web contra os ataques por manipulação de URL, é preciso controlar as vulnerabilidades e aplicar regularmente as atualizações fornecidas pelo editor do servidor web.

Além disso, uma configuração detalhada do servidor web impede que os usuários naveguem em páginas às quais não é suposto ter acesso. Assim, o servidor web deve ser configurado seguindo as instruções seguintes: impedir a navegação por páginas situadas na raiz do site web (mecanismo ‘chroot’); desativar a exibição de arquivos em um diretório que não contenha um arquivo de índice (Directory Browsing); eliminar diretórios e arquivos inúteis (incluindo os ocultos); verificar se o servidor protege o acesso aos diretórios que contêm dados importantes; remover opções de configuração desnecessárias; verificar se o servidor interpreta corretamente as páginas dinâmicas, incluindo os arquivos de backup (BAK); excluir os intérpretes de scripts supérfluos; impedir a consulta em modo HTTP das páginas acessíveis em HTTPS.
Jean-François Pillou

Nosso conteúdo é produzido em colaboração com especialistas em tecnologia da informação sob o comando de Jean-François Pillou, fundador do CCM.net e diretor digital do Grupo Figaro. CCM é um site sobre tecnologia líder em nível internacional e está disponível em 11 idiomas.

Mais informações sobre a equipe do CCM

Veja também

Última modificação: 22 de junho de 2017 às 07:20 por Ana Spadari.

Este documento, intitulado 'Ataques por manipulação de URL', está disponível sob a licença Creative Commons. Você pode copiar e/ou modificar o conteúdo desta página com base nas condições estipuladas pela licença. Não se esqueça de creditar o CCM (https://br.ccm.net/) ao utilizar este artigo.