HTTP参数污染

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

展开阅读全文

页面更新:2024-05-01

标签:参数   应用程序   漏洞   帐户   案例   密码   页面   方式   系统   技术

1 2 3 4 5

上滑加载更多 ↓
推荐阅读:
友情链接:
更多:

本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828  

© CopyRight 2008-2024 All Rights Reserved. Powered By bs178.com 闽ICP备11008920号-3
闽公网安备35020302034844号

Top