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

サーバー設定ファイルについて nginx

最近はwebサーバーのシェアとしてnginxが徐々に伸びてきていますね。 先日apacheについて解説をしましたが、nginxについて書きたいと思います。 Contents1 設定ファイル2 参考リン …

no image

サーバーレスやPassについての所感など

firebaseについてここ数日ちょこちょこ触りました。一昔前はwebアプリというと、ほとんどがCentOSにapacheとMySQLを入れて・・・というパターンが大部分でしたが、2020年6月現在、 …

no image

IPアドレスの構成に関して(主にネットワーク、ホスト、サブネットマスクなど)

インフラ周りの知識がスカスカなので復習もかねて学習中です。 ネットワークはほとんどインフラの方にやっていただいたので、知識がまとまっていない・・ Contents1 IPアドレスに関して2 ネットワー …

no image

vimの基本的な使い方 設定ファイル、基本コマンド他

もう4年ぐらいの付き合いになる憎らしくもかわいいエディタvi(vim)について。 雑誌に特集があったのでこれを機にまとめてみました。シリーズものになるかも・・・ Contents1 Vi(vim)とは …

no image

vimの小ネタ(主にテキスト置換系に関して)

前回に引き続き、またまたvimの小ネタなど Contents1 マクロ2 単純な置換3 改行系の置換4 一括置換 マクロ エディタ上である動作を記録させておきたい場合、q+任意の文字(例えばa)+任意 …

アーカイブ