Ataques por manipulação de URL

Novembro 2017

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.

Veja também


URL manipulation attacks
URL manipulation attacks
Ataques de manipulación de URL
Ataques de manipulación de URL
Angriffe per Manipulation der URL
Angriffe per Manipulation der URL
Attaques par manipulation d'URL
Attaques par manipulation d'URL
Attacchi da manipolazione d'URL
Attacchi da manipolazione d'URL
Última modificação: 22 de junho de 2017 às 07:20 por ninha25.
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 (br.ccm.net) ao utilizar este artigo.