skillup

技術ブログ

サーバー・ネットワーク

HTTPヘッダ・インジェクション+オープンリダイレクタ

投稿日:2017年2月8日 更新日:

HTTPヘッダ・インジェクションとは?

通常Webでサイトにアクセスをする場合、ブラウザからサーバーにリクエストを送り、サーバーからはレスポンスが返されます。

リクエスト時のデータに、悪意のあるコードが埋め込まれると場合によってはレスポンスボディが改ざんされ、本来と違ったWebコンテンツが表示される可能性があります。

といいますか、下記URLの説明を写しただけですが(汗)。

【HTTPヘッダインジェクション】の仕組みと対策のまとめ記事

被害(ほぼクロスサイト・スクリプティング攻撃による脅威と同じ脅威)

  • Webサイトを閲覧していて意図しない操作をさせられてしまう(GET句にリダイレクトなどの処理を埋め込まれる)
  • ニセのCookie発行(これまたGET句にSetCookieなどを入れるなど)
  • 複数のレスポンスに分割し、任意のレスポンスボディをリバースプロキシなどにキャッシュさせることにより、キャッシュ汚染を引き起こし、ウェブページの改ざんと同じ脅威が発生します。
  • htmlエスケープ

対策

  • ヘッダの出力を直接行わず、ウェブアプリケーションの実行環境や言語に用意されているヘッダ出力用APIを使用する。要はGET句などからHTTPヘッダーになるような値の挿入を行わない。
  • 改行コードを適切に処理するヘッダ出力用APIを利用できない場合は、改行を許可しないよう開発者自身で適切な処理を実装する(Perlの場合、HTTPヘッダを自力でかくことが多いため、このタイプの問題が起こりがち)。クッキーには改行が入る可能性があるため、この場合はパーセントエンコーディングなどを行う。

オープンリダイレクタとは?

リダイレクト先をGET句などで動的に指定する仕様のことです。

このアプリの場合、悪意のあるページにリダイレクとさせて個人情報を盗まれるなどの危険性があります。(フィッシング詐欺などが典型的な例です。)

対策

  • そもそも動的なURLを設定しない
  • やむをえず入れる場合、正規表現などのチェックを入れる

-サーバー・ネットワーク
-

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

no image

dockerでの環境構築 〜コンテナ作成し、実作業ができるまで(mac編)

今や環境構築の保存や移行などが比較的自由にできるようにはなってきていると思います。 自分の場合は未だにvagrantのイメージフォルダを移行してやっていますが(汗)。 参考リンク vagrantで仮想 …

no image

Linux環境下でのdockerのインストールについて

CI/CDがらみのプロセスでdockerを使っていたのですが、Linux環境下でのdockerのインストールについてメモ。 Contents1 yum -y install docker2 docke …

no image

MacでのVirtualHost設定

MacでのVirtualHostについて。 Contents1 設定方法2 注意点2.1 httpd -S2.2 httpd: Could not reliably determine the ser …

no image

nohup(sshログアウトしてもコマンドは続く)+ StickyBit(誰もで書き込み自由)

インフラ系の小ネタです Contents1 nohup2 Sticky Bit(スティッキービット) nohup sshでログインしている時に長時間かかるような処理を実行中、ログアウトするとそのコマン …

no image

herokuでのhttpd.conf設定

前回の記事でLet’s EncryptでSSL設定する場合、 http://ドメイン/.well-known/ というURLにアクセスする必要があります。 ただherok …