2016-08-18 57 views
1

HPP(HTTP Parameter Pollution)攻撃について理解するために、このlinkを調べました。CSRFとHPPの違い(HTTPパラメータ汚染)?

HPP攻撃では、攻撃者はHTTPパラメータを変更し、変更されたURLを犠牲者に送信するようです。 CSRF攻撃と同じではありませんか?もし誰かが私にCSRF & HPPの違いは何ですか?

答えて

1

HTTPパラメータ汚染は、アプリケーションが別のシステムにバックエンドHTTP要求を行い、これらのパラメータをメインアプリケーションへの入力によって操作できる場合です。 HPPは、攻撃者が重複したパラメータ名をバックエンド要求に渡し、アプリケーションによって明示的に渡されたパラメータ値を上書きするという事実によって定義されます。同様の脆弱性であるHTTP Parameter Injectionは、攻撃者がバックエンド要求に新しいパラメータを追加して定義します。このパラメータは、他のシステムによって解釈されます。したがって、HPIによって新しいパラメータが追加されますが、HPPでは既存のパラメータが無視されるか、新しい方法で解釈されます。

HPPの実例については、my answer hereを参照してください。

CSRFはバックエンドHTTP要求を必要としません。これはフロントエンドの要求ですが、犠牲者が知識なしに行ったものです。基本的には、被害者のブラウザと被害者の許可Cookieを使用して悪意のある要求が行われることを意味します。これは、攻撃者のページに隠された画像のような単純なものでした:

<img src="https://bank.example.com/transfer_money?toAmount=999&toAccount=12345678" /> 

被害者が(例えば、それらに電子メールで送信リンク、またはフォーラムに掲載何かを以下の)攻撃者のページを訪問するたびにこれがトリガされます。

POSTメソッドを使用した別の例については、my answer hereを参照してください。

HPFの脆弱性は、CSRFによって悪用されることがあります。たとえば、犠牲者がHPP経由で悪用可能なシステムにログインしたものであることを要求するもの。例えばhttps://www.example.com/transferMoney.phpへのPOSTはtoAccount=9876 POSTパラメータを渡し、犠牲者がwww.example.comのautorisation cookieを使用して不正なアカウントに送金する原因となります。

あなたの質問の記事に関しては、状態変化を引き起こすアクションはPOSTメソッドで実装され、GETリンクでは実装されていないため、実際のHPP攻撃ではないと私は考えています。実際には現在のページから構築されているアクションリンクを取得します(ただし、何でも可能です)。このため、HPPは実際にはバックエンド要求のほうがずっと多くなっています。

+0

説明をありがとう。 あなたが言ったように、HPPはCSRFを介して悪用される可能性があります。私たちが適切なCSRF保護メカニズムを持っているのであれば、攻撃者はHPPを行うためにユーザーを欺くことはできません。 しかし、CSRFフィルタは、実際の攻撃者がHPPの例で言及されている状況を防ぎません。 – SSB

+0

正しい。 HPPは、意図しない方法で解釈される重複を持つことによってパラメータが「汚染されている」ときです。もう一つの答えは、この重要な事実は言及していません。 – SilverlightFox

1

リンクされた記事で説明されているように、HPPは、返されたページの内容を変更するためにリクエストパラメータを変更する特定のタイプの注入攻撃です。ある意味では、反射XSS攻撃のより一般化されたバージョンです。一方、XSSを使用すると、リクエストを改ざんして悪意のあるjavascriptを注入して実行しようとすると、HPPでは悪意のあるデータを挿入するためにデータ(URLの生成に使用されたデータ)を変更しようとしています。

しかし、CSRFという用語は、予期しない動作や望ましくない動作につながるコンテキストで完全に有効な要求がサーバーに送信される攻撃を表すために使用されます。やや標準的な例は、サイトのリンクをクリックするようにユーザーを誘導し、ユーザーの銀行口座(ユーザー)に自分の口座から自分の口座に資金を移す要求を送信することです。

攻撃者がCSRF攻撃でHPP攻撃またはXSS攻撃を使用することは何も防げません。 XSS攻撃またはHPP攻撃は、応答の一部として後で返されるユーザー入力の処理での検証の欠如を利用しますが、CSRF攻撃は、意図しない動作を引き起こすアプリケーションフロー内の「シーケンス破損」を利用します。

+0

時間を割いて問題にお答えいただき、ありがとうございます。 – SSB

+0

HPPとは、応答しているアプリケーションがオリジナルではなく攻撃者の複製を処理するようにする、重複したパラメータを持つ要求を作成することを意味します。私は、うまくいけば、物事をクリアするためにも答えました。 – SilverlightFox

関連する問題