hacktricks/pentesting-web/parameter-pollution.md

89 lines
8.7 KiB
Markdown
Raw Normal View History

# パラメータ汚染
2022-04-28 16:01:33 +00:00
<details>
2023-04-25 18:35:28 +00:00
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
2022-04-28 16:01:33 +00:00
* **サイバーセキュリティ企業**で働いていますか? **HackTricksで会社を宣伝**したいですか?または、**PEASSの最新バージョンにアクセスしたり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を見つけてください。独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクションです。
* [**公式のPEASSHackTricksのグッズ**](https://peass.creator-spring.com)を手に入れましょう。
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**テレグラムグループ**](https://t.me/peass)に**参加**するか、**Twitter**で**フォロー**してください[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**。**
* **ハッキングのトリックを共有するには、PRを** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **と** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **に提出してください。**
2022-04-28 16:01:33 +00:00
</details>
**コピー元**[**https://medium.com/@shahjerry33/http-parameter-pollution-its-contaminated-85edc0805654**](https://medium.com/@shahjerry33/http-parameter-pollution-its-contaminated-85edc0805654)
2022-04-28 16:01:33 +00:00
**概要:**
2020-07-30 08:34:18 +00:00
2023-07-07 23:42:27 +00:00
HTTPパラメータ汚染HPPは、特定の悪意のあるタスクを達成するために、ウェブアプリケーションのHTTPパラメータを汚染することを意味します。これは、ウェブサイトがHTTPリクエスト中に受け取ったパラメータの処理方法を操作することを指します。これにより、ウェブサイトの意図した動作が変更されます。HTTPパラメータ汚染は、単純な攻撃の一種ですが、効果的な攻撃です。
2020-07-30 08:34:18 +00:00
2023-07-07 23:42:27 +00:00
パラメータを汚染すると、コードはサーバーサイドでのみ実行され、私たちには見えませんが、結果は画面上で確認できます。その間のプロセスはブラックボックスです。
2020-07-30 08:34:18 +00:00
2023-07-07 23:42:27 +00:00
例えば、URL https://www.anybank.com/send には3つのパラメータがあります
2020-07-30 08:34:18 +00:00
2023-07-07 23:42:27 +00:00
1. from
2. to
3. amount
2020-07-30 08:34:18 +00:00
**URLhttps://www.anybank.com/send/?from=accountA\&to=accountB\&amount=10000**
2020-07-30 08:34:18 +00:00
これは、accountAからaccountBへの10000のトランザクションを行う通常のURLですが、もしもう1つの同じパラメータ「from」を追加した場合はどうなるでしょうか。
2020-07-30 08:34:18 +00:00
2023-07-07 23:42:27 +00:00
したがって、URLは次のようになります**https://www.anybank.com/send/?from=accountA\&to=accountB\&amount=10000\&from=accountC**
2020-07-30 08:34:18 +00:00
2023-07-07 23:42:27 +00:00
このURLを処理すると、10000のトランザクションがaccountAではなくaccountCから差し引かれます。これが**HTTPパラメータ汚染**攻撃でパラメータを操作する方法です。この脆弱性の範囲は、**GET**リクエストに限定されるわけではありません。**POST**ベースのリクエストでもこの攻撃を実行することができます。パスワードの変更、2FA、コメント、プロフィール写真のアップロード、APIキーが渡されるパラメータ、OTPなど、多くの場所でこの脆弱性を試すことができます。
2020-07-30 08:34:18 +00:00
パラメータを操作すると、それぞれのウェブ技術がパラメータを解析する方法によって操作が異なります。ウェブ技術は「[Wappalyzer](https://addons.mozilla.org/en-US/firefox/addon/wappalyzer/)」を使用して特定することができます。以下は、いくつかの技術とそのパラメータ解析のスクリーンショットです。技術とそのパラメータ解析
2020-07-30 08:34:18 +00:00
![Image for post](https://miro.medium.com/max/1760/1\*POs4sP0fQVlPvTH9vw1U-A.jpeg)
2020-07-30 08:34:18 +00:00
私は、この脆弱性を見つけた1つの事例を共有したいと思います。この脆弱性を利用してアカウントを乗っ取ることができました。
2020-07-30 08:34:18 +00:00
2023-07-07 23:42:27 +00:00
**どのようにしてこの脆弱性を見つけましたか?**
2020-07-30 08:34:18 +00:00
1. そのプログラムのログインページに移動し、ログインのためにOTPを要求されました。
2020-07-30 08:34:18 +00:00
2023-07-07 23:42:27 +00:00
OTPを送信
2020-07-30 08:34:18 +00:00
![Image for post](https://miro.medium.com/max/600/1\*s-M09yWBylPVEhA6\_e0nSw.jpeg)
2020-07-30 08:34:18 +00:00
2023-07-07 23:42:27 +00:00
2. メールアドレスを入力し、「ワンタイムパスワードを送信」をクリックしました。
2020-07-30 08:34:18 +00:00
2023-07-07 23:42:27 +00:00
3. Burp Suiteを使用してリクエストを傍受し、同じパラメータを使用して別のメールアドレスを追加しましたテスト目的で2つのメールアドレスを作成しました
2020-07-30 08:34:18 +00:00
2023-07-07 23:42:27 +00:00
Burpリクエスト
2020-07-30 08:34:18 +00:00
2023-07-07 23:42:27 +00:00
![Image for post](https://miro.medium.com/max/1737/1\*z\_RpnZyKHLn6B4Lz4ONT3Q.png)
2020-07-30 08:34:18 +00:00
2023-07-07 23:42:27 +00:00
4. 別のアカウントradhika....@gmail.comにshrey....@gmail.comのOTPが届きました。
2020-07-30 08:34:18 +00:00
2023-07-07 23:42:27 +00:00
OTP
2022-04-28 16:01:33 +00:00
2023-07-07 23:42:27 +00:00
![Image for post](https://miro.medium.com/max/784/1\*a671GrRtiMYfLUL7nURD8Q.png)
2022-04-28 16:01:33 +00:00
2023-07-07 23:42:27 +00:00
5. OTPをコピーして、そのプログラムのログイン画面でshrey....@gmail.comに移動し、このOTPを入力しました。すると、アカウントにログインできました。
2022-04-28 16:01:33 +00:00
2023-07-07 23:42:27 +00:00
アカウント乗っ取り
2022-04-28 16:01:33 +00:00
2023-07-07 23:42:27 +00:00
![Image for post](https://miro.medium.com/max/1698/1\*Ux-ILfCr\_Mk\_xmzzsXwNnA.jpeg)
2022-04-28 16:01:33 +00:00
ここで起こったことは、バックエンドアプリケーションが最初の「**email**」パラメータの値を使用してOTPを生成し、2番目の「**email**」パラメータの値を使用して値を提供したため、shrey....@gmail.comのOTPがradhika....@gmail.comに送信されたということです。
2022-04-28 16:01:33 +00:00
2023-07-07 23:42:27 +00:00
**注意:**4番目のステップの画像では、radhika....@gmail.comにOTPが届いたというメッセージが表示されたため、混乱しました。したがって、パラメータが汚染されておらず、OTPがradhika....@gmail.comのためのものだと思いましたが、shrey....@gmail.comでOTPを試したところ、機能しました。
## Flask & PHP
[**この解説**](https://github.com/google/google-ctf/tree/master/2023/web-under-construction/solution)では、FlaskとPHPが実行されているApache HTTP Server上で、`a=1&a=2`というHTTPクエリがどのように解釈されるかが示されています。Flaskでは、パラメータは`1`最初の出現になりますが、PHPでは`2`(最後の出現)になります。
2022-04-28 16:01:33 +00:00
<details>
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
2022-04-28 16:01:33 +00:00
* **サイバーセキュリティ企業**で働いていますか? **HackTricksで会社を宣伝**したいですか?または、**PEASSの最新バージョンにアクセスしたり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を見つけてください。独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクションです。
* [**公式のPEASS & HackTricksグッズ**](https://peass.creator-spring.com)を手に入れましょう。
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に参加するか、**Twitter**で[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**をフォロー**してください。
* **ハッキングのトリックを共有するには、PRを** [**hacktricks repo**](https://github.com/carlospolop/hacktricks) **と** [**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **に提出してください。**
2022-04-28 16:01:33 +00:00
</details>