Перейти к содержанию

Path traversal при использовании alias

Gixy Check ID: alias_traversal

Директива alias используется для замены пути указанного локейшена. К примеру, для конфигурации:

location /i/ {
    alias /data/w3/images/;
}
На запрос /i/top.gif будет отдан файл /data/w3/images/top.gif.

Однако, если локейшен не оканчивается разделителем директорий (/):

location /i {
    alias /data/w3/images/;
}
То на запрос /i../app/config.py будет отдан файл /data/w3/app/config.py.

Иными словами, не корректная конфигурация alias может позволить злоумышленнику прочесть файл за пределами целевой директории.

Что делать?

Все довольно просто: - необходимо найти все директивы alias; - убедится что вышестоящий префиксный локейшен оканчивается на /.