nginx
Security
Config
alias
パストラバーサル

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

はじめに

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

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の設定ミスで起こるリファラの検証不備