01概述 HTTP参数污染(HPP)是指污染Web应用程序的HTTP参数以实现特定的恶意攻击。它指的是操纵网站如何处理它在HTTP请求期间接收到的参数,它改变了网站预期的行为。HTTP参数污染是一种简单但有效的攻击方式。 当你污染任何参数时,代码只在服务器端运行,这是不可见的,但我们可以在屏幕上看到结果,中间的过程是一个黑盒。 例如,有一个URLhttps:www。anybank。comsend具有三个参数:from:to:amount:URL:https:www。anybank。comsend?fromaccountAtoaccountBamount10000 现在这是一个正常的URL,它将处理从accountA到accountB的10000交易,但是如果我们添加另一个相同的参数from:会怎么样?所以URL将类似于:https:www。anybank。comsend?fromaccountAtoaccountBamount10000fromaccountC 当此URL将进行10000的交易时,将从accountC而不是accountA中扣除,这就是您在HTTP参数污染攻击中操纵参数的方式。此漏洞的范围不仅限于GET请求,您还可以对基于POST的请求执行此攻击。你可以在很多地方尝试这个漏洞,比如密码更改、2FA、评论、个人资料照片上传、传递API密钥的参数、OTP等。 当你操纵任何参数时,它的结果取决于每种Web技术如何解析它们的参数。您可以使用Wappalyzer来识别Web技术。下面是部分技术及其参数解析的截图。 我想分享我在HPP攻击中的一个案例,我可以利用这个漏洞接管一个帐户。 02案例分享 我如何找到这个漏洞? 1、我访问那个系统的登录页面,它要求一个OTP用于登录。 2。我输入邮箱地址并点击发送一次性密码 3。我使用burpsuite拦截请求并使用相同的参数添加了另一个邮箱地址(我创建了两个邮箱用于测试) 4。我收到了一个shreygmail。com的OTP,在我的另一个帐户radhikagmail。com中。 5。我在那个系统的登录页面输入了这个OTP,并进入了shrey用户中心。 所以这里发生的是后端应用程序使用第一个email参数的值生成一个OTP,并使用第二个email参数的值来接收该值,这意味着一个shrey。gmail。com的OTP被发送到radhika。gmail。com。 注意:在第4步的图片中,我收到了radhikagmail。com的OTP我很困惑,因为消息说你好Radhika,所以我认为参数没有被污染,OTP是给radhika。gmail。com,但当我在尝试OTP时shreygmail。com它起作用了。 缓解: 应执行适当的输入验证以防止此类攻击。 参考及来源: https:shahjerry33。medium。comhttpparameterpollutionitscontaminated85edc0805654