Directory Traversal

O que é "Directory traversal"?

Directory traversal é uma vulnerabilidade em que o atacante consegue acesso a arquivos arbitrários do server que está rodando um programa. Então, nesta vulnerabilidade é possível acessar documentos do diretório raíz.

Lendo arquivos com directory traversal:

Para carregar uma imagem em uma página web, pode ser usado HTML:

<img src="loadImage?filename=ganesh.png">

É possível ver que há um parâmetro filename, que é o nome do documento da imagem que será mostrada na página.

Para acessar a imagem, o programa percorre um caminho até a imagem, um exemplo seria:

*/var/www/images/ganesh.png*

Caso não haja medidas de defesa contra esta vulnerabilidade, alguém mal intencionado pode requisitar outros arquivos da seguinte forma:

[https://icmc.com.br/loadImage?filename=../../../etc/passwd](https://insecure-website.com/loadImage?filename=../../../etc/passwd)

Com esta requisição, ao invés de seguir o caminho anterior, a máquina seguirá o seguinte caminho:

/var/www/images/../../../etc/passwd

Assim como no terminal, (../) indica que a máquina acessará o diretório pai ao atual, e por ter três (../), o computador acessará a root, e o que realmente é lido é:

/etc/passwd

Esta localização acima, em sistemas operacionais baseados em Unix, contém informações privadas do usuário, por isso o exemplo contém estes nomes.

No Windows, pode ser usado tanto (../) quanto (..\) e ao invés de /etc/passwd seria \windows\win.ini

Obstáculos contra essa vulnerabilidade

Last updated