mirror of
https://github.com/carlospolop/hacktricks
synced 2024-11-28 15:41:34 +00:00
5.8 KiB
5.8 KiB
参数污染
{% hint style="success" %}
学习与实践 AWS 黑客技术:HackTricks 培训 AWS 红队专家 (ARTE)
学习与实践 GCP 黑客技术:HackTricks 培训 GCP 红队专家 (GRTE)
支持 HackTricks
- 查看 订阅计划!
- 加入 💬 Discord 群组 或 Telegram 群组 或 关注 我们的 Twitter 🐦 @hacktricks_live.
- 通过向 HackTricks 和 HackTricks Cloud github 仓库提交 PR 分享黑客技巧。
{% embed url="https://websec.nl/" %}
HTTP 参数污染 (HPP) 概述
HTTP 参数污染 (HPP) 是一种技术,攻击者通过操纵 HTTP 参数以意想不到的方式改变 Web 应用程序的行为。这种操纵是通过添加、修改或重复 HTTP 参数来实现的。这些操纵的效果对用户并不直接可见,但可以显著改变服务器端应用程序的功能,并在客户端产生可观察的影响。
HTTP 参数污染 (HPP) 示例
一个银行应用程序的交易 URL:
- 原始 URL:
https://www.victim.com/send/?from=accountA&to=accountB&amount=10000
通过插入一个额外的 from
参数:
- 操纵后的 URL:
https://www.victim.com/send/?from=accountA&to=accountB&amount=10000&from=accountC
交易可能错误地从 accountA
收费到 accountC
,展示了 HPP 操纵交易或其他功能(如密码重置、双因素认证设置或 API 密钥请求)的潜力。
特定技术的参数解析
- 参数的解析和优先级取决于底层 Web 技术,影响 HPP 的利用方式。
- 像 Wappalyzer 这样的工具有助于识别这些技术及其解析行为。
PHP 和 HPP 利用
一次性密码 (OTP) 操作案例:
- 背景: 一个需要一次性密码 (OTP) 的登录机制被利用。
- 方法: 通过使用 Burp Suite 等工具拦截 OTP 请求,攻击者在 HTTP 请求中重复了
email
参数。 - 结果: 本应发送到初始电子邮件的 OTP 被发送到操纵请求中指定的第二个电子邮件地址。这个缺陷允许通过绕过预期的安全措施获得未授权访问。
这个场景突显了应用程序后端的一个关键疏漏,该后端处理第一个 email
参数以生成 OTP,但使用最后一个进行发送。
API 密钥操纵案例:
- 场景: 一个应用程序允许用户通过个人资料设置页面更新他们的 API 密钥。
- 攻击向量: 攻击者发现通过向 POST 请求附加一个额外的
api_key
参数,可以操纵 API 密钥更新功能的结果。 - 技术: 利用像 Burp Suite 这样的工具,攻击者构造一个包含两个
api_key
参数的请求:一个合法的和一个恶意的。服务器只处理最后一个出现的参数,将 API 密钥更新为攻击者提供的值。 - 结果: 攻击者控制了受害者的 API 功能,可能未经授权访问或修改私有数据。
这个例子进一步强调了安全参数处理的必要性,特别是在像 API 密钥管理这样关键的功能中。
参数解析:Flask 与 PHP
Web 技术处理重复 HTTP 参数的方式各不相同,影响其对 HPP 攻击的易受性:
- Flask: 采用遇到的第一个参数值,例如在查询字符串
a=1&a=2
中,优先考虑初始实例而非后续重复。 - PHP(在 Apache HTTP 服务器上): 相反,优先考虑最后一个参数值,在给定示例中选择
a=2
。这种行为可能无意中通过优先考虑攻击者操纵的参数而促进 HPP 利用。
参考文献
- https://medium.com/@shahjerry33/http-parameter-pollution-its-contaminated-85edc0805654
- https://github.com/google/google-ctf/tree/master/2023/web-under-construction/solution
{% embed url="https://websec.nl/" %}
{% hint style="success" %}
学习与实践 AWS 黑客技术:HackTricks 培训 AWS 红队专家 (ARTE)
学习与实践 GCP 黑客技术:HackTricks 培训 GCP 红队专家 (GRTE)
支持 HackTricks
- 查看 订阅计划!
- 加入 💬 Discord 群组 或 Telegram 群组 或 关注 我们的 Twitter 🐦 @hacktricks_live.
- 通过向 HackTricks 和 HackTricks Cloud github 仓库提交 PR 分享黑客技巧。