Pplware

Path Traversal: o que é esta vulnerabilidade e como pode colocar dados em risco?

No mundo da cibersegurança existem vulnerabilidades que, apesar de parecerem simples, podem permitir a um atacante aceder a ficheiros que deveriam estar completamente protegidos. Uma delas é conhecida como Path Traversal.


Esta vulnerabilidade pode surgir quando uma aplicação não valida corretamente os caminhos de ficheiros fornecidos pelo utilizador, permitindo que um atacante saia do diretório previsto e tente aceder a outros ficheiros existentes no sistema.

O que é o Path Traversal?

O Path Traversal, também conhecido como Directory Traversal, é uma vulnerabilidade que permite manipular o caminho utilizado por uma aplicação para aceder a ficheiros ou diretórios.

Imagine uma aplicação que permite descarregar um ficheiro através de um endereço semelhante a:

https://exemplo.pt/download?file=manual.pdf

À partida, a aplicação deveria permitir apenas o acesso a ficheiros existentes numa determinada pasta.

O problema surge quando o valor recebido pelo servidor é utilizado diretamente, sem uma validação adequada.

Em sistemas Unix/Linux, um atacante pode tentar utilizar sequências como:

../

Estas representam o diretório pai. Ao repetir esta sequência, pode tentar subir vários níveis na estrutura de diretórios.

../../../etc/passwd

Se a aplicação for vulnerável e tiver permissões suficientes, poderá acabar por tentar aceder a um ficheiro que está completamente fora do diretório originalmente permitido.

..\..\

Porque é perigoso?

O impacto depende sobretudo das permissões da aplicação e dos ficheiros que podem ser alcançados.

Um ataque de Path Traversal pode permitir:

Por exemplo, um ficheiro de configuração pode conter credenciais de acesso a uma base de dados. Se esse ficheiro puder ser lido através de Path Traversal, o atacante poderá utilizar essas informações para realizar outros ataques.

É importante destacar que Path Traversal não significa necessariamente execução de código. O objetivo inicial pode ser simplesmente conseguir aceder a ficheiros que deveriam estar fora do alcance do utilizador.

Como acontece?

O problema normalmente está relacionado com a forma como a aplicação constrói os caminhos dos ficheiros.

Um exemplo conceptual seria:

/dados/uploads/ + nome_do_ficheiro

Se a aplicação aceitar diretamente nome_do_ficheiro fornecido pelo utilizador, um atacante poderá tentar introduzir elementos que alterem o caminho final. Em vez de:

/dados/uploads/documento.pdf

poderá tentar construir algo semelhante a:

/dados/uploads/../../ficheiro.conf

Se não existir uma validação adequada, o sistema poderá interpretar o caminho e navegar para fora da pasta prevista.

Path Traversal vs. Local File Inclusion

Embora estejam relacionados, Path Traversal e Local File Inclusion (LFI) não são exatamente a mesma coisa.

No Path Traversal, o principal objetivo é normalmente aceder a ficheiros ou diretórios fora do local autorizado.

No LFI, a vulnerabilidade permite que uma aplicação inclua um ficheiro local no processamento de uma página ou recurso. Dependendo da aplicação e das condições existentes, isso pode ter consequências mais graves.

Por isso, uma vulnerabilidade de Path Traversal pode, em determinados cenários, fazer parte de uma cadeia de ataque mais complexa.

Como prevenir ataques de Path Traversal?

A principal medida de proteção é nunca confiar diretamente nos caminhos fornecidos pelo utilizador.

Entre as boas práticas estão:

Exit mobile version