HTTPヘッダについての調査(4/?)

1回目2回目3回目、の続き。前提条件はこれまでと同じ。

ブラウザ以外で処理されるヘッダ

前回のHTTP/2についての記事の中でCGIStatusヘッダに少し触れたので、ブラウザ以外(サーバやリバースプロキシ)で処理される応答ヘッダについて書く。

その種のヘッダには以下のようなものがある。

  • Status: 404 ... CGI環境などで応答ステータス変更
  • X-Sendfile: /etc/hosts ... Sendfileが有効な環境でサーバ上のファイルを取得
  • X-Accel-Redirect: /internal/secret ... nginxの内部リダイレクトで非公開ファイルを取得

他にもWebサーバや中間の機器で処理されうるヘッダというのは多くあるだろう。ただし、この手のものはサーバやリバースプロキシがヘッダとして解釈しなければならないので、LFが入ることが条件になることが多いと思われる。

ところで、普通のHTTPヘッダインジェクションは他人に踏ませる受動的な攻撃だが、Sendfileなどでは能動的な攻撃になりうる。この辺は、XSSが能動的なSSI(Server Side Includes)インジェクションなどに化けることがあるのに似ている。