Edited at

nginxの設定ミスで起こるパス トラバーサル

More than 1 year has passed since last update.


はじめに

この記事は下記リンクの日本語翻訳記事です

https://github.com/yandex/gixy/blob/master/docs/en/plugins/aliastraversal.md

翻訳が誤っている場合はコメントか@no1zy_secまでお知らせいただけると幸いです。


[alias_traversal] Path traversal via misconfigured alias

aliasディレクティブは指定されたlocationのパスのreplaceに使用されます。

例えば以下の設定:

location /i/ {

alias /data/w3/images/;
}

/i/top.gif のリクエストで, /data/w3/images/top.gif のファイルが送られます。

しかし、ディレクトリセパレーター (すなわち / ) でlocationが終わっていない場合:

location /i {

alias /data/w3/images/;
}

/i../app/config.py のリクエストで, /data/w3/app/config.py のファイルが送られます。

つまり、不適切な alias の設定は攻撃者が対象のフォルダの外に保存されているファイルの読み込みを可能にします。


対策

それは非常にシンプルです

1. まず、aliasディレクティブを全て見つける必要があります。

2. 次に、親のprefixed locationが / で終わることを確認してください。


関連リンク

nginxの設定ミスで起こるHTTP Splitting

nginxの設定ミスで起こるSSRF

nginxの設定ミスで起こるMultiline response headers

nginxの設定ミスで起こるレスポンスヘッダの出力不備

nginxの設定ミスで起こるreferer/origin検証の問題

nginxの設定ミスで起こるHostヘッダフォージェリ

nginxの設定ミスで起こるリファラの検証不備