hacktricks/pentesting-web/parameter-pollution.md

7.1 KiB
Raw Blame History

パラメータ汚染

htARTEHackTricks AWS Red Team Expert を通じてゼロからヒーローまでAWSハッキングを学ぶ

HackTricks をサポートする他の方法:

HTTPパラメータ汚染HPPの概要

HTTPパラメータ汚染HPPは、攻撃者がHTTPパラメータを操作してWebアプリケーションの動作を意図しない方法で変更する技術です。この操作は、HTTPパラメータを追加、変更、または複製することによって行われます。これらの操作の影響はユーザーに直接は見えませんが、サーバーサイドでアプリケーションの機能を大幅に変更し、クライアントサイドにも影響を与える可能性があります。

HTTPパラメータ汚染HPPの例

銀行アプリケーションのトランザクションURL

  • 元のURL: https://www.victim.com/send/?from=accountA&to=accountB&amount=10000

追加の from パラメータを挿入することにより:

  • 操作されたURL: https://www.victim.com/send/?from=accountA&to=accountB&amount=10000&from=accountC

トランザクションは accountA の代わりに accountC に誤って請求される可能性があり、HPPがトランザクションやパスワードリセット、2FA設定、APIキー要求などの機能を操作する可能性を示しています。

技術固有のパラメータ解析

  • パラメータの解析と優先順位付け方法は、基礎となるWeb技術に依存し、HPPの悪用方法に影響を与えます。
  • Wappalyzerのようなツールは、これらの技術とその解析動作を特定するのに役立ちます。

PHPとHPPの悪用

OTP操作のケース:

  • コンテキスト: OTPを必要とするログインメカニズムが悪用されました。
  • 方法: Burp Suiteなどのツールを使用してOTPリクエストを傍受し、HTTPリクエスト内の email パラメータを複製しました。
  • 結果: 初期のメールアドレス用に意図されたOTPが、操作されたリクエストで指定された2番目のメールアドレスに送信されました。この欠陥により、意図されたセキュリティ対策を回避して、不正アクセスが可能となりました。

このシナリオは、OTP生成のために最初の email パラメータを処理したアプリケーションのバックエンドで重大な見落としが示されていますが、配信には最後の email パラメータが使用されました。

APIキー操作のケース:

  • シナリオ: アプリケーションがユーザーにAPIキーをプロファイル設定ページを介して更新する機能を提供しています。
  • 攻撃ベクトル: 攻撃者が、POSTリクエストに追加の api_key パラメータを追加することで、APIキー更新機能の結果を操作できることを発見しました。
  • 手法: Burp Suiteのようなツールを使用して、攻撃者はリクエストを作成し、2つの api_key パラメータを含めます1つは正当であり、もう1つは悪意を持っています。サーバーは最後の出現のみを処理し、APIキーを攻撃者が提供した値に更新します。
  • 結果: 攻撃者は被害者のAPI機能を制御し、権限なくプライベートデータにアクセスしたり変更したりする可能性があります。

この例は、特にAPIキー管理などの重要な機能でセキュアなパラメータ処理の必要性を強調しています。

パラメータ解析: Flask vs. PHP

Web技術が重複するHTTPパラメータを処理する方法は異なり、HPP攻撃への脆弱性に影響します

  • Flask: クエリ文字列 a=1&a=2 で最初に遭遇したパラメータ値を採用し、初期のインスタンスを後続の重複より優先します。
  • PHPApache HTTP Server上: 逆に、与えられた例では a=2 を選択し、最後のパラメータ値を優先します。この動作は、攻撃者の操作されたパラメータを元のパラメータよりも優先することで、HPPの悪用を誤って容易にする可能性があります。

参考文献

htARTEHackTricks AWS Red Team Expert を通じてゼロからヒーローまでAWSハッキングを学ぶ

HackTricks をサポートする他の方法: