7.6 KiB
パラメータ汚染
AWSハッキングをゼロからヒーローまで学ぶには htARTE (HackTricks AWS Red Team Expert)!
HackTricksをサポートする他の方法:
- HackTricksにあなたの会社を広告したい、またはHackTricksをPDFでダウンロードしたい場合は、サブスクリプションプランをチェックしてください!
- 公式PEASS & HackTricksグッズを入手する
- The PEASS Familyを発見する、私たちの独占的なNFTsのコレクション
- 💬 Discordグループに参加するか、telegramグループに参加するか、Twitter 🐦 @carlospolopmをフォローする。
- HackTricksとHackTricks CloudのgithubリポジトリにPRを提出して、あなたのハッキングのコツを共有する。
以下からコピー: https://medium.com/@shahjerry33/http-parameter-pollution-its-contaminated-85edc0805654
要約 :
HTTPパラメータ汚染(HPP)は、特定の悪意のあるタスクを達成するために、WebアプリケーションのHTTPパラメータを汚染することを意味します。これは、HTTPリクエスト中に受け取るパラメータをWebサイトがどのように扱うかを操作することを指します。これにより、Webサイトの振る舞いが意図したものから変わります。HTTPパラメータ汚染は単純な種類の攻撃ですが、効果的です。
パラメータを汚染すると、コードはサーバー側でのみ実行され、私たちには見えませんが、結果は画面上で見ることができます。その間のプロセスはブラックボックスです。
例えば、以下のようなURLがあります:https://www.anybank.com/send これには3つのパラメータがあります:
- from :
- to :
- amount :
URL : https://www.anybank.com/send/?from=accountA&to=accountB&amount=10000
これは通常のURLで、accountAからaccountBへの10000の取引を進めますが、もし同じパラメータ**“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など、多くの場所でこの脆弱性を試すことができます。
パラメータを操作するとき、その操作は各Web技術がパラメータを解析する方法に依存します。Web技術を識別するには「Wappalyzer」を使用できます。以下は、いくつかの技術とそれらのパラメータ解析のスクリーンショットです。技術とそれらのパラメータ解析
HPPの私の発見の一つを共有したいと思います。この脆弱性を使ってアカウントを乗っ取ることができました。
この脆弱性をどのように見つけたか?
- そのプログラムのログインページに行きました。ログインするためのOTPが必要でした。
OTPを送信
2. メールアドレスを入力して「ワンタイムパスワードを送信」をクリックしました。
3. バープスイートを使用してリクエストを傍受し、同じパラメータを使用して別のメールアドレスを追加しました(テスト目的で2つのメールアドレスを作成しました)。バープリクエスト
4. shrey……@gmail.comのOTPを私の別のアカウントradhika…..@gmail.comに受け取りました。OTP
5. OTPをコピーして、そのプログラムのログイン画面でshrey….@gmail.comに行き、このOTPを入力しました。そしてアカウントに入りました。アカウント乗っ取り
ここで何が起こったかというと、バックエンドアプリケーションは最初の「email」パラメータの値を使用してOTPを生成し、2番目の「email」パラメータの値を使用して値を供給しました。つまり、shrey….@gmail.comのOTPがradhika….@gmail.comに送られました。
注記: 4番目のステップでradhika….@gmail.comにOTPを受け取った画像では、メッセージにHi Radhikaと書かれていたので、パラメータが汚染されていないと混乱しました。しかし、shrey….@gmail.comでOTPを試したところ、機能しました。
Flask & PHP
このライトアップでは、a=1&a=2
のようなHTTPクエリがApache HTTPサーバー上で実行されるFlaskとPHPによって異なって解釈されることがわかります。Flaskでは、パラメータは1
(最初の出現)になりますが、PHPでは2
(最後の出現)になります。
AWSハッキングをゼロからヒーローまで学ぶには htARTE (HackTricks AWS Red Team Expert)!
HackTricksをサポートする他の方法:
- HackTricksにあなたの会社を広告したい、またはHackTricksをPDFでダウンロードしたい場合は、サブスクリプションプランをチェックしてください!
- 公式PEASS & HackTricksグッズを入手する
- The PEASS Familyを発見する、私たちの独占的なNFTsのコレクション
- 💬 Discordグループに参加するか、telegramグループに参加するか、Twitter 🐦 @carlospolopmをフォローする。
- HackTricksとHackTricks CloudのgithubリポジトリにPRを提出して、あなたのハッキングのコツを共有する。