Translated ['pentesting-web/parameter-pollution.md'] to in

This commit is contained in:
Translator 2024-11-12 12:27:18 +00:00
parent 8d1a3e5244
commit f48bc37a1e
2 changed files with 99 additions and 14 deletions

View file

@ -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)

View file

@ -1,4 +1,4 @@
# Parameter Pollution
# Parameter Pollution | JSON Injection
## Parameter Pollution
@ -23,7 +23,7 @@ Learn & practice GCP Hacking: <img src="../.gitbook/assets/grte.png" alt="" data
## HTTP Parameter Pollution (HPP) Overview
HTTP Parameter Pollution (HPP) एक तकनीक है जहाँ हमलावर HTTP पैरामीटर को इस तरह से बदलते हैं कि वे वेब एप्लिकेशन के व्यवहार को अनपेक्षित तरीकों से बदल देते हैं। यह हेरफेर HTTP पैरामीटर को जोड़ने, संशोधित करने या डुप्लिकेट करने के द्वारा किया जाता है। इन हेरफेरों का प्रभाव सीधे उपयोगकर्ता को दिखाई नहीं देता, लेकिन यह सर्वर साइड पर एप्लिकेशन की कार्यक्षमता को महत्वपूर्ण रूप से बदल सकता है, जिसका क्लाइंट साइड पर अवलोकनीय प्रभाव होता है।
HTTP Parameter Pollution (HPP) एक तकनीक है जहाँ हमलावर HTTP पैरामीटर को इस तरह से बदलते हैं कि वे वेब एप्लिकेशन के व्यवहार को अनपेक्षित तरीकों से बदल देते हैं। यह हेरफेर HTTP पैरामीटर को जोड़ने, संशोधित करने या डुप्लिकेट करने के द्वारा किया जाता है। इन हेरफेरों का प्रभाव सीधे उपयोगकर्ता को दिखाई नहीं देता लेकिन यह सर्वर साइड पर एप्लिकेशन की कार्यक्षमता को महत्वपूर्ण रूप से बदल सकता है, जिसका क्लाइंट साइड पर अवलोकनीय प्रभाव होता है।
### Example of HTTP Parameter Pollution (HPP)
@ -39,7 +39,7 @@ HTTP Parameter Pollution (HPP) एक तकनीक है जहाँ हम
#### **Technology-Specific Parameter Parsing**
* पैरामीटर को पार्स और प्राथमिकता देने का तरीका अंतर्निहित वेब तकनीक पर निर्भर करता है, जो HPP के शोषण को प्रभावित करता है।
* पैरामीटर को कैसे पार्स और प्राथमिकता दी जाती है, यह अंतर्निहित वेब तकनीक पर निर्भर करता है, जो HPP के शोषण को प्रभावित करता है।
* [Wappalyzer](https://addons.mozilla.org/en-US/firefox/addon/wappalyzer/) जैसे उपकरण इन तकनीकों और उनके पार्सिंग व्यवहार की पहचान करने में मदद करते हैं।
### PHP and HPP Exploitation
@ -50,7 +50,7 @@ HTTP Parameter Pollution (HPP) एक तकनीक है जहाँ हम
* **Method:** Burp Suite जैसे उपकरणों का उपयोग करके OTP अनुरोध को इंटरसेप्ट करके, हमलावरों ने HTTP अनुरोध में `email` पैरामीटर को डुप्लिकेट किया।
* **Outcome:** OTP, जो प्रारंभिक ईमेल के लिए था, को इसके बजाय हेरफेर किए गए अनुरोध में निर्दिष्ट दूसरे ईमेल पते पर भेजा गया। यह दोष अनधिकृत पहुंच की अनुमति देता है, जो कि इच्छित सुरक्षा उपाय को दरकिनार करता है।
यह परिदृश्य एप्लिकेशन के बैकएंड में एक महत्वपूर्ण चूक को उजागर करता है, जिसने OTP उत्पन्न करने के लिए पहले `email` पैरामीटर को संसाधित किया लेकिन डिलीवरी के लिए अंतिम का उपयोग किया।
यह परिदृश्य एप्लिकेशन के बैकएंड में एक महत्वपूर्ण चूक को उजागर करता है, जिसने OTP उत्पन्न करने के लिए पहले `email` पैरामीटर को संसाधित किया लेकिन वितरण के लिए अंतिम का उपयोग किया।
**API Key Manipulation Case:**
@ -59,7 +59,7 @@ HTTP Parameter Pollution (HPP) एक तकनीक है जहाँ हम
* **Technique:** Burp Suite जैसे उपकरण का उपयोग करते हुए, हमलावर एक अनुरोध तैयार करता है जिसमें दो `api_key` पैरामीटर होते हैं: एक वैध और एक दुर्भावनापूर्ण। सर्वर, केवल अंतिम घटना को संसाधित करते हुए, API कुंजी को हमलावर द्वारा प्रदान किए गए मान पर अपडेट करता है।
* **Result:** हमलावर पीड़ित की API कार्यक्षमता पर नियंत्रण प्राप्त करता है, संभावित रूप से निजी डेटा तक अनधिकृत पहुंच या संशोधन कर सकता है।
यह उदाहरण सुरक्षित पैरामीटर हैंडलिंग की आवश्यकता को और अधिक उजागर करता है, विशेष रूप से API कुंजी प्रबंधन जैसी महत्वपूर्ण सुविधाओं में
यह उदाहरण API कुंजी प्रबंधन जैसी महत्वपूर्ण सुविधाओं में सुरक्षित पैरामीटर हैंडलिंग की आवश्यकता को और अधिक उजागर करता है।
### Parameter Parsing: Flask vs. PHP
@ -70,7 +70,7 @@ HTTP Parameter Pollution (HPP) एक तकनीक है जहाँ हम
## Parameter pollution by technology
There results were taken from [https://medium.com/@0xAwali/http-parameter-pollution-in-2024-32ec1b810f89](https://medium.com/@0xAwali/http-parameter-pollution-in-2024-32ec1b810f89)
यह परिणाम [https://medium.com/@0xAwali/http-parameter-pollution-in-2024-32ec1b810f89](https://medium.com/@0xAwali/http-parameter-pollution-in-2024-32ec1b810f89) से लिए गए हैं।
### PHP 8.3.11 AND Apache 2.4.62 <a href="#id-9523" id="id-9523"></a>
@ -134,27 +134,112 @@ There results were taken from [https://medium.com/@0xAwali/http-parameter-pollut
1. name\[] को मान्यता नहीं दी गई।
2. अंतिम पैरामीटर को प्राथमिकता दें।
## References
## JSON Injection
### Duplicate keys
```ini
obj = {"test": "user", "test": "admin"}
```
The front-end might believe the first ocurrence while the backend uses the second ocurrence of the key.
### Key Collision: Character Truncation and Comments
कुछ वर्ण सही ढंग से फ्रंटेंड द्वारा व्याख्यायित नहीं किए जाएंगे लेकिन बैकएंड उन्हें व्याख्यायित करेगा और उन कुंजियों का उपयोग करेगा, यह **कुछ प्रतिबंधों को बायपास करने** के लिए उपयोगी हो सकता है:
```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 और 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)
<figure><img src="https://pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="../.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="../.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="../.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="../.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
AWS Hacking सीखें और अभ्यास करें:<img src="../.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="../.gitbook/assets/arte.png" alt="" data-size="line">\
GCP Hacking सीखें और अभ्यास करें: <img src="../.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="../.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary>Support HackTricks</summary>
<summary>HackTricks का समर्थन करें</summary>
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
* [**सदस्यता योजनाएँ**](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) गिटहब रिपोजिटरी में PR सबमिट करें।
</details>
{% endhint %}