skillup

技術ブログ

サーバー・ネットワーク

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

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

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

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

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

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

http://viral-community.com/security/http-header-injection-1901/

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

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

対策

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

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

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

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

対策

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

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

執筆者:


comment

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

関連記事

no image

yumとrpmについて

centOSのカーネルのバージョンアップで時間があるのでブログを更新。 redhat系ではソフトウェアをインストールするときにyumかrpmのコマンドを使うと思います。 私も日頃、両方使っているのです …

no image

CSRF(クロスサイト・リクエスト・フォージェリ)

Contents1 CSRF(クロスサイト・リクエスト・フォージェリ)とは?2 被害3 対策4 参考(トークンチェック) CSRF(クロスサイト・リクエスト・フォージェリ)とは? ウェブサイトの中には …

no image

メニュー系のCSS

よく迷うのでこれを機にまとめておこうかと。 Contents1 通常時のメニュー2 携帯(いわゆる縦のメニュー)3 ホバー時の画像選択4 小ネタ 選択されているときのメニュー 通常時のメニュー htm …

no image

firewall復習 ansibleコマンドもかねて

CentOS7ではファイアーウォールの設定をfirewallというコマンドで行います。要はportのブロックですね。 以前下記リンクでもfirewallについて書いたんですが、あまり理解もできていなか …

no image

webサーバーがどのように動いているか(GETとPOST)

webがリクエストを受け取って画面に表示するまでの流れをおさらい。基本です。 Contents1 全体の流れ2 参考文献 全体の流れ 1 ユーザーがブラウザのURL欄にhttp://www.examp …