通过HTTP参数污染(HPP)接管账户

愣娃 技术 2018年7月19日发布

导语:这篇文章我介绍“我如何能够利用HTTP参数污染(HPP)漏洞的接管用户帐户。

正如标题所示,这篇文章我介绍“我如何能够利用HTTP参数污染(HPP)漏洞的接管用户帐户。HPP是什么,为什么可以接管?以下是一些说明。

HTTP参数污染(如名称所示)Web应用程序的HTTP参数,以执行与Web应用程序的预期行为不符的攻击。HTTP参数污染,简单的讲就是给相同名称参数赋上两个或两个以上的值,导致应用程序以意外方式解释值而出现漏洞。现在的HTTP标准没有提及在遇到相同参数多个赋值时应该怎样处理。因此web程序组件在遇到这类问题时采取的方法也不完全相同。

如以下案列:

search.php?id=110&id=911

这就是典型的相同参数,多个赋值的情况,针对于这种情况,由于HTTP标准没有规定如何处理,是由Werserver来处理这个事情,但是每个Webserver处理时又不相同,针对于这种情况我们可以进行攻击。

clipboard.png

最近,我一直在阅读很多相关文章,一些hackerone 报告以及不同的应用程序如何处理它,这使我更清楚如何针对它。我在其中一个印度在线购物网站找到了相同的漏洞,然后我接管了用户帐户。让我们看看我是如何做到的。

https://www.redacted.com/zephyr-mini-alphaboard/p/&pid = ETYDBYSKDDZQGDJD&vi=XXXX

这是一个简单的HPP漏洞,其中添加参数'u'(https://www.redacted.com/zephyr-mini-alphaboard/p/?u=http://www.evil.com&pid=ETYDBYSKDDZQGDJD&vi=XXXX)并在Facebook上分享它,将内容更改为https://www.facebook.com/sharer.php?u=https://www.redacted.com/zephyr-mini-alphaboard/ p /?u-http://www.evil.com&pid=ETYDBYSKDDZQGDJD&vi=XXXX而不是共享刚开始项目,此刻“evil.com”网站的内容正在受害者的Facebook页面上分享。

现在我知道HPP的出现是由于不同的Web服务器和开发框架处理多个相同值参数导致的问题,因此认定基本上是一个后端应用程序技术问题。它既然可以发生在社交分享按钮上,也可以出现在应用程序的其他部分中。在研究更多利用方式时,我想到去测试登录验证页面,其中有一个重置密码功能。

2.png

在此之前,我使用“Wappalyzer”分析了后端应用程序框架,显示“JSP和Apache”。现在,提供受害者的邮件ID并提交它,触发以下HTTP请求如下

3.png

根据找回密码功能,它生成重置密码链接,取值为“harrysonito@gmail.com”修改这个邮箱指定的密码,并将重置密码链接发送到这个邮件ID。

我测试提供多个“mail”参数但值不相同是否导致后端应用程序框架以不同的方式工作。我添加了攻击者的电子邮件ID,被篡改的请求看起来像(如下图)

4.png

后端应用程序(在本例中为JSP)使用第一个“email”参数的值来生成密码重置链接,并使用第二个“email”参数值“petercheckk852234@gmail.com"中接收重置链接的邮件。第二个“email”参数中邮箱的地址为我们自己的地址,所以邮件我们可控,邮件发送到我们可控的邮箱后,我打开链接, 重新设置了受害者帐户密码并能够登录到这个帐户,这就是我通过HTTP参数污染来破坏任何用户帐户的方式。

5.png

本文翻译自:https://medium.com/@logicbomb_1/bugbounty-compromising-user-account-how-i-was-able-to-compromise-user-account-via-http-4288068b901f如若转载,请注明原文地址: http://www.4hou.com/technology/12465.html
点赞 3
  • 分享至
取消

感谢您的支持,我会继续努力的!

扫码支持

打开微信扫一扫后点击右上角即可分享哟

发表评论