aliastraversal.md 1.2 KB

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

Директива 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;
  • убедится что вышестоящий префиксный локейшен оканчивается на /.