[alias_traversal] Added documentation

pull/69/head
Andrew Krasichkov 2017-10-10 14:59:18 +03:00
parent d00a58e467
commit 1f9a65a197
4 changed files with 52 additions and 0 deletions

View File

@ -24,6 +24,7 @@ Gixy — это утилита для анализа конфигурации Ng
* [[host_spoofing] Подделка заголовка запроса Host](https://github.com/yandex/gixy/blob/master/docs/ru/plugins/hostspoofing.md)
* [[valid_referers] none in valid_referers](https://github.com/yandex/gixy/blob/master/docs/ru/plugins/validreferers.md)
* [[add_header_multiline] Многострочные заголовоки ответа](https://github.com/yandex/gixy/blob/master/docs/ru/plugins/addheadermultiline.md)
* [[alias_traversal] Path traversal при использовании alias](https://github.com/yandex/gixy/blob/master/docs/ru/plugins/aliastraversal.md)
Проблемы, которым Gixy только учится можно найти в [Issues с меткой "new plugin"](https://github.com/yandex/gixy/issues?q=is%3Aissue+is%3Aopen+label%3A%22new+plugin%22)

View File

@ -25,6 +25,7 @@ Right now Gixy can find:
* [[host_spoofing] Request's Host header forgery](https://github.com/yandex/gixy/blob/master/docs/en/plugins/hostspoofing.md)
* [[valid_referers] none in valid_referers](https://github.com/yandex/gixy/blob/master/docs/en/plugins/validreferers.md)
* [[add_header_multiline] Multiline response headers](https://github.com/yandex/gixy/blob/master/docs/en/plugins/addheadermultiline.md)
* [[alias_traversal] Path traversal via misconfigured alias](https://github.com/yandex/gixy/blob/master/docs/en/plugins/aliastraversal.md)
You can find things that Gixy is learning to detect at [Issues labeled with "new plugin"](https://github.com/yandex/gixy/issues?q=is%3Aissue+is%3Aopen+label%3A%22new+plugin%22)

View File

@ -0,0 +1,25 @@
# [alias_traversal] Path traversal via misconfigured alias
The [alias](https://nginx.ru/ru/docs/http/ngx_http_core_module.html#alias) directive is used to replace path of the specified location.
For example, with the following configuration:
```nginx
location /i/ {
alias /data/w3/images/;
}
```
on request of `/i/top.gif`, the file `/data/w3/images/top.gif` will be sent.
But, if the location doesn't ends with directory separator (i.e. `/`):
```nginx
location /i {
alias /data/w3/images/;
}
```
on request of `/i../app/config.py`, the file `/data/w3/app/config.py` will be sent.
In other words, the incorrect configuration of `alias` could allow an attacker to read file stored outside the target folder.
## What can I do?
It's pretty simple:
- you must find all the `alias` directives;
- make sure that the parent prefixed location ends with directory separator.

View File

@ -0,0 +1,25 @@
# [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`;
- убедится что вышестоящий префиксный локейшен оканчивается на `/`.