hacktricks/pentesting-web/parameter-pollution.md
2023-07-07 23:42:27 +00:00

7.2 KiB
Raw Blame History

☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥

**https://medium.com/@shahjerry33/http-parameter-pollution-its-contaminated-85edc0805654**からコピーされました。

概要:

HTTPパラメータ汚染HPPは、特定の悪意のあるタスクを達成するために、ウェブアプリケーションのHTTPパラメータを汚染することを意味します。これは、ウェブサイトがHTTPリクエスト中に受け取ったパラメータの処理方法を操作することを指します。これにより、ウェブサイトの意図した動作が変更されます。HTTPパラメータ汚染は、単純な攻撃の一種ですが、効果的な攻撃です。

パラメータを汚染すると、コードはサーバーサイドでのみ実行され、私たちには見えませんが、結果は画面上で確認できます。その間のプロセスはブラックボックスです。

例えば、URL https://www.anybank.com/send には3つのパラメータがあります

  1. from
  2. to
  3. amount

URL: https://www.anybank.com/send/?from=accountA&to=accountB&amount=10000

これは、accountAからaccountBへの10000のトランザクションを行う通常のURLですが、もしもう1つの同じパラメータ「from:」を追加した場合はどうなるでしょうか。

したがって、URLは次のようになりますhttps://www.anybank.com/send/?from=accountA&to=accountB&amount=10000&from=accountC

このURLを処理すると、10000のトランザクションがaccountAではなくaccountCから差し引かれます。これがHTTPパラメータ汚染攻撃でパラメータを操作する方法です。この脆弱性の範囲は、GETリクエストに限定されるわけではありません。POSTベースのリクエストでもこの攻撃を実行することができます。パスワードの変更、2FA、コメント、プロフィール写真のアップロード、APIキーが渡されるパラメータ、OTPなど、多くの場所でこの脆弱性を試すことができます。

パラメータを操作すると、その操作方法は各ウェブテクノロジーがパラメータを解析する方法に依存します。ウェブテクノロジーは「Wappalyzer」を使用して識別できます。以下は、いくつかのテクノロジーとそのパラメータ解析のスクリーンショットです。

Image for post

私は、この脆弱性を見つけた1つの例を共有したいと思います。この脆弱性を使用してアカウントを乗っ取ることができました。

どのようにしてこの脆弱性を見つけましたか?

  1. そのプログラムのログインページに移動し、ログインのためのOTPを要求されました。

OTPを送信

Image for post

  1. メールアドレスを入力し、「ワンタイムパスワードを送信」をクリックしました。

  2. Burp Suiteを使用してリクエストを傍受し、同じパラメータを使用して別のメールアドレスを追加しましたテスト目的で2つのメールアドレスを作成しました

Burpリクエスト

Image for post

  1. 別のアカウントradhika....@gmail.comにshrey....@gmail.comのOTPが届きました。

OTP

Image for post

  1. OTPをコピーして、そのプログラムのログイン画面でshrey....@gmail.comに移動し、このOTPを入力しました。すると、アカウントにログインできました。

アカウント乗っ取り

Image for post

ここで起こったことは、バックエンドアプリケーションが最初の「email」パラメータの値を使用してOTPを生成し、2番目の「email」パラメータの値を使用して値を提供したため、shrey....@gmail.comのOTPがradhika....@gmail.comに送信されたということです。

**注意:**4番目のステップの画像では、radhika....@gmail.comにOTPが届いたというメッセージが表示されたため、混乱しました。したがって、パラメータが汚染されておらず、OTPがradhika....@gmail.comのためのものだと思いましたが、shrey....@gmail.comでOTPを試したところ、機能しました。