hacktricks/pentesting-web/parameter-pollution.md
2023-08-03 19:12:22 +00:00

82 lines
6.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 参数污染
<details>
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks云 ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 推特 🐦</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>
* 你在一家**网络安全公司**工作吗想要在HackTricks中看到你的**公司广告**吗?或者你想要获得**PEASS的最新版本或下载PDF格式的HackTricks**吗?请查看[**订阅计划**](https://github.com/sponsors/carlospolop)
* 发现我们的独家[**NFTs**](https://opensea.io/collection/the-peass-family)收藏品[**The PEASS Family**](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)**。**
* **通过向**[**hacktricks repo**](https://github.com/carlospolop/hacktricks) **和**[**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **提交PR来分享你的黑客技巧。**
</details>
**摘自** [**https://medium.com/@shahjerry33/http-parameter-pollution-its-contaminated-85edc0805654**](https://medium.com/@shahjerry33/http-parameter-pollution-its-contaminated-85edc0805654)
**摘要:**
HTTP参数污染HPP是指为了实现特定的恶意任务而污染Web应用程序的HTTP参数。它指的是操纵网站在HTTP请求期间接收到的参数的方式。它改变了网站的行为使其与预期的行为不同。HTTP参数污染是一种简单但有效的攻击方式。
当你污染任何参数时,代码只在服务器端运行,对我们来说是不可见的,但我们可以在屏幕上看到结果。中间的过程是一个黑盒子。
例如有一个URL https://www.anybank.com/send它有三个参数
1. from
2. to
3. amount
**URLhttps://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的交易时它将从accountC中扣除而不是从accountA中扣除。这就是你如何在**HTTP参数污染**攻击中操纵参数。尽管这个漏洞的范围不仅限于**GET**请求,你也可以对基于**POST**的请求进行这种攻击。你可以在许多地方尝试这个漏洞比如密码更改、2FA、评论、个人资料照片上传、传递API密钥的参数、OTP等。
当你操纵任何参数时它的操纵取决于每个Web技术如何解析它们的参数。你可以使用“[Wappalyzer](https://addons.mozilla.org/en-US/firefox/addon/wappalyzer/)”来识别Web技术。下面是一些技术及其参数解析的屏幕截图。技术及其参数解析
![Image for post](https://miro.medium.com/max/1760/1\*POs4sP0fQVlPvTH9vw1U-A.jpeg)
我想分享我发现的一个HPP漏洞我能够利用这个漏洞接管一个账户。
**我是如何发现这个漏洞的?**
1. 我进入了该程序的登录页面它要求输入一个OTP进行登录
发送OTP
![Image for post](https://miro.medium.com/max/600/1\*s-M09yWBylPVEhA6\_e0nSw.jpeg)
2. 我输入了一个电子邮件地址,并点击“发送一次性密码”
3. 我使用burp suite拦截了请求并使用相同的参数添加了另一个电子邮件我为测试目的创建了两个电子邮件Burp请求
![Image for post](https://miro.medium.com/max/1737/1\*z\_RpnZyKHLn6B4Lz4ONT3Q.png)
4. 我在我的另一个账户radhika....@gmail.com上收到了一个shrey....@gmail.com的OTP OTP
![Image for post](https://miro.medium.com/max/784/1\*a671GrRtiMYfLUL7nURD8Q.png)
5. 我复制了OTP并在该程序的登录界面上输入了shrey....@gmail.com我输入了这个OTP然后我就进入了这个账户。接管账户
![Image for post](https://miro.medium.com/max/1698/1\*Ux-ILfCr\_Mk\_xmzzsXwNnA.jpeg)
所以这里发生的情况是后端应用程序使用第一个“**email**”参数的值生成了一个OTP并使用第二个“**email**”参数的值提供了这个值这意味着shrey....@gmail.com的OTP被发送到radhika....@gmail.com。
**注意:**在第4步的图像中我收到了一个发给radhika....@gmail.com的OTP我感到困惑因为消息上写着Hi Radhika所以我以为参数没有被污染OTP是给radhika....@gmail.com的但是当我在shrey....@gmail.com上尝试了这个OTP时它起作用了。
## Flask和PHP
在[**这篇文章**](https://github.com/google/google-ctf/tree/master/2023/web-under-construction/solution)中你可以看到在运行在Apache HTTP服务器上的Flask和PHP中像`a=1&a=2`这样的HTTP查询会被解释为不同的结果。在Flask中参数将是`1`第一次出现而在PHP中参数将是`2`(最后一次出现)。
<details>
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks云 ☁️</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>
* 你在一家**网络安全公司**工作吗想要在HackTricks中**宣传你的公司**吗?或者想要**获取PEASS的最新版本或下载PDF格式的HackTricks**吗?请查看[**订阅计划**](https://github.com/sponsors/carlospolop)
* 发现我们的独家[**NFTs**](https://opensea.io/collection/the-peass-family)收藏品——[**The PEASS Family**](https://opensea.io/collection/the-peass-family)
* 获取[**官方PEASS和HackTricks周边产品**](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)**。**
* **通过向**[**hacktricks repo**](https://github.com/carlospolop/hacktricks) **和**[**hacktricks-cloud repo**](https://github.com/carlospolop/hacktricks-cloud) **提交PR来分享你的黑客技巧。**
</details>