1
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

HTTPヘッダーインジェクション メモ

Posted at
  • Webアプリの脆弱性を利用した攻撃手法の一つであるHTTPヘッダーインジェクションについてメモする。

概要

  • フォームやURLで入力するリクエストパラメータやクエリパラメータを、想定しないデータに改変して送信し、HTTP レスポンスヘッダに新たなヘッダ要素を追加したり、レスポンスボディに任意の文字列を追加する攻撃

  • 例:改行コードによる任意のヘッダー設定

    • HTTPリクエスト

      http://example.com/account/aaa?redirect_url=http://example.com/account/login%0D%0ASet-Cookie:+SSO_ID=XYZ123
      
    • HTTPレスポンス

      HTTP/1.1 302 Found
      Date: Sun, 18 Jun 2021 21:34:35 GMT
      Location: http://example.com/account/login
      Set-Cookie: SSO_ID=XYZ123
      

      ※改行コード(%0D%0A)により、以降の文字列を次の要素として扱われてしまい、Set-Cookieヘッダが有効になる。

    http_header_injection.png

想定される脅威

  • 利用者のブラウザ上での偽情報を表示、任意のスクリプト埋め込み
  • 任意のCookie発行※セッションIDの固定

対応策

  • 外部からのパラメータをそのまま使用しない、HTTPレスポンスヘッダに出力しない実装/ライブラリ使用を行う。
    • 使用する場合は、エスケープなどを行う。

参考情報

1
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?