はじめに
この記事は下記リンクの日本語翻訳記事です
翻訳が誤っている場合はコメントか@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
の設定は攻撃者が対象のフォルダの外に保存されているファイルの読み込みを可能にします。
対策
それは非常にシンプルです
- まず、
alias
ディレクティブを全て見つける必要があります。 - 次に、親のprefixed locationが
/
で終わることを確認してください。
関連リンク
nginxの設定ミスで起こるHTTP Splitting
nginxの設定ミスで起こるSSRF
nginxの設定ミスで起こるMultiline response headers
nginxの設定ミスで起こるレスポンスヘッダの出力不備
nginxの設定ミスで起こるreferer/origin検証の問題
nginxの設定ミスで起こるHostヘッダフォージェリ
nginxの設定ミスで起こるリファラの検証不備