gixy/docs/ru/plugins/aliastraversal.md

26 lines
1.2 KiB
Markdown
Raw Permalink Normal View History

2017-10-10 11:59:18 +00:00
# [alias_traversal] Path traversal при использовании alias
Директива [alias](https://nginx.ru/ru/docs/http/ngx_http_core_module.html#alias) используется для замены пути указанного локейшена.
К примеру, для конфигурации:
```nginx
location /i/ {
alias /data/w3/images/;
}
```
на запрос `/i/top.gif` будет отдан файл `/data/w3/images/top.gif`.
Однако, если локейшен не оканчивается разделителем директорий (`/`):
```nginx
location /i {
alias /data/w3/images/;
}
```
то на запрос `/i../app/config.py` будет отдан файл `/data/w3/app/config.py`.
Иными словами, не корректная конфигурация `alias` может позволить злоумышленнику прочесть файл за пределами целевой директории.
## Что делать?
Все довольно просто:
- необходимо найти все директивы `alias`;
- убедится что вышестоящий префиксный локейшен оканчивается на `/`.