diff --git a/SUMMARY.md b/SUMMARY.md
index 60279767a..0103b2fa9 100644
--- a/SUMMARY.md
+++ b/SUMMARY.md
@@ -604,7 +604,7 @@
* [OAuth to Account takeover](pentesting-web/oauth-to-account-takeover.md)
* [Open Redirect](pentesting-web/open-redirect.md)
* [ORM Injection](pentesting-web/orm-injection.md)
-* [Parameter Pollution](pentesting-web/parameter-pollution.md)
+* [Parameter Pollution | JSON Injection](pentesting-web/parameter-pollution.md)
* [Phone Number Injections](pentesting-web/phone-number-injections.md)
* [PostMessage Vulnerabilities](pentesting-web/postmessage-vulnerabilities/README.md)
* [Blocking main page to steal postmessage](pentesting-web/postmessage-vulnerabilities/blocking-main-page-to-steal-postmessage.md)
diff --git a/pentesting-web/parameter-pollution.md b/pentesting-web/parameter-pollution.md
index bd43a9fe8..6720ed7fd 100644
--- a/pentesting-web/parameter-pollution.md
+++ b/pentesting-web/parameter-pollution.md
@@ -1,6 +1,6 @@
-# 参数污染
+# Parameter Pollution | JSON Injection
-## 参数污染
+## Parameter Pollution
{% hint style="success" %}
学习与实践 AWS 黑客技术:[**HackTricks 培训 AWS 红队专家 (ARTE)**](https://training.hacktricks.xyz/courses/arte)\
@@ -21,11 +21,11 @@
{% embed url="https://websec.nl/" %}
-## HTTP 参数污染 (HPP) 概述
+## HTTP Parameter Pollution (HPP) 概述
-HTTP 参数污染 (HPP) 是一种技术,攻击者通过操纵 HTTP 参数以意想不到的方式改变 Web 应用程序的行为。这种操纵是通过添加、修改或重复 HTTP 参数来实现的。这些操纵的效果对用户并不直接可见,但可以显著改变应用程序在服务器端的功能,并在客户端产生可观察的影响。
+HTTP Parameter Pollution (HPP) 是一种技术,攻击者通过操纵 HTTP 参数以意想不到的方式改变 Web 应用程序的行为。这种操纵是通过添加、修改或重复 HTTP 参数来完成的。这些操纵的效果对用户并不直接可见,但可以显著改变应用程序在服务器端的功能,并在客户端产生可观察的影响。
-### HTTP 参数污染 (HPP) 示例
+### HTTP Parameter Pollution (HPP) 示例
一个银行应用程序的交易 URL:
@@ -48,15 +48,15 @@ HTTP 参数污染 (HPP) 是一种技术,攻击者通过操纵 HTTP 参数以
* **背景:** 一个需要一次性密码 (OTP) 的登录机制被利用。
* **方法:** 通过使用 Burp Suite 等工具拦截 OTP 请求,攻击者在 HTTP 请求中重复了 `email` 参数。
-* **结果:** 本应发送到初始电子邮件的 OTP,反而发送到了操纵请求中指定的第二个电子邮件地址。这个缺陷允许通过绕过预期的安全措施获得未授权访问。
+* **结果:** 本应发送到初始电子邮件的 OTP 被发送到操纵请求中指定的第二个电子邮件地址。这个缺陷允许通过绕过预期的安全措施获得未授权访问。
-这个场景突显了应用程序后端的一个关键疏漏,该后端处理第一个 `email` 参数以生成 OTP,但使用最后一个进行发送。
+这个场景突显了应用程序后端的一个关键疏漏,它处理了第一个 `email` 参数用于 OTP 生成,但使用最后一个进行发送。
**API 密钥操纵案例:**
-* **场景:** 一个应用程序允许用户通过个人资料设置页面更新其 API 密钥。
+* **场景:** 一个应用程序允许用户通过个人资料设置页面更新他们的 API 密钥。
* **攻击向量:** 攻击者发现通过向 POST 请求附加一个额外的 `api_key` 参数,可以操纵 API 密钥更新功能的结果。
-* **技术:** 利用像 Burp Suite 这样的工具,攻击者构造一个包含两个 `api_key` 参数的请求:一个合法的和一个恶意的。服务器只处理最后一个出现的参数,将 API 密钥更新为攻击者提供的值。
+* **技术:** 利用像 Burp Suite 这样的工具,攻击者构造一个请求,其中包含两个 `api_key` 参数:一个合法的和一个恶意的。服务器只处理最后一个出现的参数,将 API 密钥更新为攻击者提供的值。
* **结果:** 攻击者控制了受害者的 API 功能,可能未经授权访问或修改私有数据。
这个例子进一步强调了安全参数处理的必要性,特别是在像 API 密钥管理这样关键的功能中。
@@ -65,8 +65,8 @@ HTTP 参数污染 (HPP) 是一种技术,攻击者通过操纵 HTTP 参数以
Web 技术处理重复 HTTP 参数的方式各不相同,影响其对 HPP 攻击的易受性:
-* **Flask:** 采用遇到的第一个参数值,例如在查询字符串 `a=1&a=2` 中优先考虑初始实例而非后续重复。
-* **PHP(在 Apache HTTP 服务器上):** 相反,优先考虑最后一个参数值,在给定示例中选择 `a=2`。这种行为可能无意中通过优先考虑攻击者操纵的参数而促进 HPP 利用。
+* **Flask:** 采用遇到的第一个参数值,例如在查询字符串 `a=1&a=2` 中优先考虑初始实例而非后续重复。
+* **PHP(在 Apache HTTP 服务器上):** 相反,优先考虑最后一个参数值,在给定示例中选择 `a=2`。这种行为可能无意中通过优先考虑攻击者操纵的参数而促进 HPP 利用。
## 按技术的参数污染
@@ -78,7 +78,7 @@ Web 技术处理重复 HTTP 参数的方式各不相同,影响其对 HPP 攻
1. 忽略参数名称中的 %00 之后的内容。
2. 将 name\[] 视为数组。
-3. \_GET 不意味着 GET 方法。
+3. \_GET 不代表 GET 方法。
4. 优先考虑最后一个参数。
### Ruby 3.3.5 和 WEBrick 1.8.2
@@ -134,27 +134,112 @@ Web 技术处理重复 HTTP 参数的方式各不相同,影响其对 HPP 攻
1. 不识别 name\[]。
2. 优先考虑最后一个参数。
+## JSON Injection
+
+### 重复键
+```ini
+obj = {"test": "user", "test": "admin"}
+```
+前端可能会相信第一个出现,而后端使用的是键的第二个出现。
+
+### 键冲突:字符截断和注释
+
+某些字符在前端可能无法被正确解析,但后端会解析它们并使用这些键,这可能有助于**绕过某些限制**:
+```json
+{"test": 1, "test\[raw \x0d byte]": 2}
+{"test": 1, "test\ud800": 2}
+{"test": 1, "test"": 2}
+{"test": 1, "te\st": 2}
+```
+注意在这些情况下,前端可能认为 `test == 1`,而后端则认为 `test == 2`。
+
+这也可以用来绕过值限制,例如:
+```json
+{"role": "administrator\[raw \x0d byte]"}
+{"role":"administrator\ud800"}
+{"role": "administrator""}
+{"role": "admini\strator"}
+```
+### **使用注释截断**
+
+{% code overflow="wrap" %}
+```ini
+obj = {"description": "Duplicate with comments", "test": 2, "extra": /*, "test": 1, "extra2": */}
+```
+{% endcode %}
+
+在这里,我们将使用每个解析器的序列化器来查看其各自的输出。
+
+序列化器 1(例如,GoLang 的 GoJay 库)将产生:
+
+* `description = "Duplicate with comments"`
+* `test = 2`
+* `extra = ""`
+
+序列化器 2(例如,Java 的 JSON-iterator 库)将产生:
+
+* `description = "Duplicate with comments"`
+* `extra = "/*"`
+* `extra2 = "*/"`
+* `test = 1`
+
+或者,直接使用注释也可以有效:
+```ini
+obj = {"description": "Comment support", "test": 1, "extra": "a"/*, "test": 2, "extra2": "b"*/}
+```
+Java的GSON库:
+```json
+{"description":"Comment support","test":1,"extra":"a"}
+```
+Ruby的simdjson库:
+```json
+{"description":"Comment support","test":2,"extra":"a","extra2":"b"}
+```
+### **不一致的优先级:反序列化与序列化**
+```ini
+obj = {"test": 1, "test": 2}
+
+obj["test"] // 1
+obj.toString() // {"test": 2}
+```
+### Float and Integer
+
+数字
+```undefined
+999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999
+```
+可以解码为多种表示形式,包括:
+```undefined
+999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999
+9.999999999999999e95
+1E+96
+0
+9223372036854775807
+```
+可能会导致不一致
+
## 参考文献
* [https://medium.com/@shahjerry33/http-parameter-pollution-its-contaminated-85edc0805654](https://medium.com/@shahjerry33/http-parameter-pollution-its-contaminated-85edc0805654)
* [https://github.com/google/google-ctf/tree/master/2023/web-under-construction/solution](https://github.com/google/google-ctf/tree/master/2023/web-under-construction/solution)
* [https://medium.com/@0xAwali/http-parameter-pollution-in-2024-32ec1b810f89](https://medium.com/@0xAwali/http-parameter-pollution-in-2024-32ec1b810f89)
+* [https://bishopfox.com/blog/json-interoperability-vulnerabilities](https://bishopfox.com/blog/json-interoperability-vulnerabilities)
{% embed url="https://websec.nl/" %}
{% hint style="success" %}
-学习与实践 AWS 黑客技术:[**HackTricks 培训 AWS 红队专家 (ARTE)**](https://training.hacktricks.xyz/courses/arte)\
-学习与实践 GCP 黑客技术: [**HackTricks 培训 GCP 红队专家 (GRTE)**](https://training.hacktricks.xyz/courses/grte)
+学习与实践 AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\
+学习与实践 GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
支持 HackTricks
* 查看 [**订阅计划**](https://github.com/sponsors/carlospolop)!
-* **加入** 💬 [**Discord 群组**](https://discord.gg/hRep4RUj7f) 或 [**Telegram 群组**](https://t.me/peass) 或 **关注** 我们的 **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
-* **通过向** [**HackTricks**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub 仓库提交 PR 分享黑客技巧。
+* **加入** 💬 [**Discord 群组**](https://discord.gg/hRep4RUj7f) 或 [**telegram 群组**](https://t.me/peass) 或 **在** **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)** 上关注我们。**
+* **通过向** [**HackTricks**](https://github.com/carlospolop/hacktricks) 和 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github 仓库提交 PR 来分享黑客技巧。
{% endhint %}