Help us understand the problem. What is going on with this article?

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

More than 1 year has passed since last update.

はじめに

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

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

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

[host_spoofing] Request's Host header forgery

多くの場合、Nginxの後方に位置するアプリケーションはURLを生成する(リダイレクト、リソース、電子メール内のリンクなど)ために適切なHostヘッダを必要とします。このヘッダのなりすましは、フィッシングからSSRFまでの様々な問題を引き起こす可能性があります。

注: アプリケーションはこの機能にX-Forwarded-Host リクエストヘッダを使用することもできます。この場合、ヘッダが適切に設定されていることを確認する必要があります。

どうやって見つけるか

ほとんどの場合、\$hostの代わりに\$http_host変数を使用した結果、脆弱になっています。

$host$http_host にはかなりの違いがあります。

  • $host - 次の優先順位でホストが決まります。

    1. リクエストライン
    2. Host リクエストヘッダフィールド
    3. リクエストに一致するサーバー名
  • $http_host - Host リクエストヘッダ

設定のサンプル

location @app {
  proxy_set_header Host $http_host;
  # Other proxy params
  proxy_pass http://backend;
}

対策

幸いにも、全てが自明です。

  • server_nameディレクティブに正しいサーバー名を全てリストしてください。
  • 常に $http_host の代わりに $host を使用してください。
  • 認識できないホスト名を持つ全てのリクエストをキャッチするための専用の仮想ホストを作成してください。 Server blocks

追加情報

Host of Troubles Vulnerabilities
Practical HTTP Host header attacks

関連リンク

Hostヘッダフォージェリの対策について
nginxの設定ミスで起こるHTTP Splitting
nginxの設定ミスで起こるSSRF
nginxの設定ミスで起こるパス トラバーサル
nginxの設定ミスで起こるMultiline response headers
nginxの設定ミスで起こるレスポンスヘッダの出力不備
nginxの設定ミスで起こるreferer/origin検証の問題
nginxの設定ミスで起こるリファラの検証不備

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした