mirror of
https://github.com/carlospolop/hacktricks
synced 2024-11-23 13:13:41 +00:00
82 lines
6.9 KiB
Markdown
82 lines
6.9 KiB
Markdown
# 参数污染
|
||
|
||
<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:
|
||
|
||
**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的交易时,它将从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>
|