Skip to content

Commit

Permalink
[alias_traversal] Added documentation
Browse files Browse the repository at this point in the history
  • Loading branch information
buglloc committed Oct 10, 2017
1 parent d00a58e commit 1f9a65a
Show file tree
Hide file tree
Showing 4 changed files with 52 additions and 0 deletions.
1 change: 1 addition & 0 deletions README.RU.md
Original file line number Diff line number Diff line change
Expand Up @@ -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)

Expand Down
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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)

Expand Down
25 changes: 25 additions & 0 deletions docs/en/plugins/aliastraversal.md
Original file line number Diff line number Diff line change
@@ -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.
25 changes: 25 additions & 0 deletions docs/ru/plugins/aliastraversal.md
Original file line number Diff line number Diff line change
@@ -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`;
- убедится что вышестоящий префиксный локейшен оканчивается на `/`.

0 comments on commit 1f9a65a

Please sign in to comment.