mirror of https://github.com/yandex/gixy
26 lines
1.2 KiB
Markdown
26 lines
1.2 KiB
Markdown
# [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`;
|
||
- убедится что вышестоящий префиксный локейшен оканчивается на `/`.
|