hacktricks/pentesting-web/parameter-pollution.md

4.7 KiB
Raw Blame History

参数污染

从零开始学习AWS黑客技术成为专家 htARTEHackTricks AWS红队专家

支持HackTricks的其他方式

HTTP参数污染HPP概述

HTTP参数污染HPP是一种攻击技术涉及操纵HTTP参数以改变Web应用程序的预期行为。这种攻击相对直接但效果显著。尽管参数操纵发生在服务器端且对用户不可见但客户端可以观察到产生的行为变化。

HTTP参数污染HPP示例

考虑银行应用程序的标准交易URL

URL: https://www.victim.com/send/?from=accountA&to=accountB&amount=10000

此URL启动了从accountA到accountB的10,000交易。然而像这样引入另一个from参数:

操纵后的URL: https://www.victim.com/send/?from=accountA&to=accountB&amount=10000&from=accountC

可能导致交易从accountC扣除而不是从accountA扣除。这说明了HPP如何用于操纵参数。值得注意的是此漏洞不仅限于GET请求还可以在POST请求中利用跨越各种功能如更改密码、双因素认证或API密钥传输。

重要的是要认识到参数解析取决于所使用的特定Web技术。诸如Wappalyzer之类的工具可用于识别Web技术并了解其参数解析行为。

PHP

利用HPP的一个显著实例涉及以下步骤

  1. OTP操纵:
  • 目标是请求OTP的登录页面。
  • 发送OTP请求后使用Burp Suite拦截了随后的HTTP请求。
  • 另一个电子邮件被添加到请求中,有效地复制了email参数。
  • 预期发送到第一个电子邮件的OTP错误地发送到第二个电子邮件从而允许未经授权访问第一个帐户。

此事件突显了应用程序后端如何处理email参数利用第一个生成OTP第二个用于OTP传递。

Flask和PHP中的参数解析

不同的Web技术以独特的方式解析参数。例如对于类似a=1&a=2的查询Flask和PHP将以不同方式解释参数

  • **Flask**采用第一个出现的值a=1
  • **PHP在Apache HTTP服务器上**采用最后一个出现的值a=2

参数处理方式的差异可能会显著影响应用程序行为和对HPP攻击的易受性。有关更多详细信息请参阅此文档

参考资料

从零开始学习AWS黑客技术成为专家 htARTEHackTricks AWS红队专家

支持HackTricks的其他方式