01 概述
HTTP参数污染(HPP)是指污染Web应用程序的HTTP参数以实现特定的恶意攻击 。它指的是操纵网站如何处理它在 HTTP 请求期间接收到的参数,它改变了网站预期的行为 。HTTP 参数污染是一种简单但有效的攻击方式 。
当你污染任何参数时,代码只在服务器端运行,这是不可见的,但我们可以在屏幕上看到结果,中间的过程是一个黑盒 。
例如,有一个 URL
https://www.anybank.com/send 具有三个参数:
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 的交易时,将从 accountC 而不是 accountA 中扣除,这就是您在 HTTP 参数污染攻击中操纵参数的方式 。此漏洞的范围不仅限于 GET 请求,您还可以对基于 POST 的请求执行此攻击 。你可以在很多地方尝试这个漏洞,比如密码更改、2FA、评论、个人资料照片上传、传递 API 密钥的参数、OTP 等 。
当你操纵任何参数时,它的结果取决于每种Web技术如何解析它们的参数 。您可以使用“WAppalyzer”来识别 Web 技术 。下面是部分技术及其参数解析的截图 。
文章插图
我想分享我在HPP 攻击中的一个案例,我可以利用这个漏洞接管一个帐户 。
02 案例分享
我如何找到这个漏洞?
1、我访问那个系统的登录页面,它要求一个 OTP 用于登录 。
文章插图
2. 我输入邮箱地址并点击“发送一次性密码”
3. 我使用 burpsuite 拦截请求并使用相同的参数添加了另一个邮箱地址(我创建了两个邮箱用于测试)
文章插图
4. 我收到了一个 shrey……@gmail.com 的OTP ,在我的另一个帐户 radhika……@gmail.com中 。
文章插图
5. 我在那个系统的登录页面输入了这个 OTP ,并进入了shrey用户中心 。
文章插图
所以这里发生的是后端应用程序使用第一个“email”参数的值生成一个 OTP,并使用第二个“email”参数的值来接收该值,这意味着一个 shrey….@gmail.com 的 OTP 被发送到 radhika….@gmail.com 。
注意:在第 4 步的图片中,我收到了 radhika…@gmail.com 的 OTP我很困惑,因为消息说你好 Radhika,所以我认为参数没有被污染,OTP 是给 radhika….@ gmail.com, 但当我在尝试 OTP 时 shrey…@gmail.com 它起作用了 。
缓解:
应执行适当的输入验证以防止此类攻击 。
参考及来源:
https://shahjerry33.medium.com/http-parameter-pollution-its-contaminated-85edc0805654
【HTTP参数污染】
推荐阅读
- 免费的https证书怎么样,阿里云https配置教程
- https证书有哪些,未来十年最有用的证书盘点
- 华为5g手机什么时候上市在国内,华为5g手机参数配置一览
- https怎么申请证书,申请https安全证书步骤
- 华为荣耀10青春版价格是多少,荣耀10lite参数配置
- 齿轮参数图解大全 齿轮各参数定义?
- https证书多少钱一年,https证书申请价格
- 三星8k电视怎么样,电视售价及性能参数介绍
- 投影仪流明是什么意思,投影仪流明参数及规格介绍
- 英特尔10代桌面cpu参数多少,英特尔10代最新消息