3
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

これは何?

Nginxを使ってディレクトリトラバーサルを試せる環境を作成しました。
GitHub Repository


Nginx Alias Traversalとは

Nginxは設定ミスによりディレクトリトラバーサルの脆弱性が発生します。

In the pattern where this location is used in combination with alias, a critical vulnerability arises when two conditions are met:

  1. no trailing slash at the end of the URL specified in the location
  2. a trailing slash at the end of the path specified in the alias
# correct nginx.conf settings
location /good/ {
  alias /var/img/;
}
# vulnerble nginx.conf settings

location /bad {
  alias /var/img/;
}

locationで指定するパスが/で終わっておらず,aliasで指定するパスが/で終わる条件が満たされるとディレクトリトラバーサルが可能になります。


デモを動かす

  1. GitHub Repositoryをクローンします。

  2. Dockerコンテナを起動します。

    cd directory_traversal/
    docker compose up
    
  3. http://localhost:82にアクセス
    image.png

  4. 上のリンクをクリックする。これは正しく設定されており,宇宙猫が表示されます。
    good-settings.png

  5. 下のリンクをクリックすると本来ユーザからはアクセスできないはずのaccess.logのサンプルにアクセスでき,ダウンロードされます。

Screenshot from 2024-12-21 01-01-02.png

3
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?