From d1fec0d1de2245fe4a22346d70b7a975fd0ffb3e Mon Sep 17 00:00:00 2001 From: Translator Date: Tue, 19 Aug 2025 22:04:38 +0000 Subject: [PATCH] Translated ['src/pentesting-web/deserialization/nodejs-proto-prototype-p --- .../README.md | 38 +++++++++---------- 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/src/pentesting-web/deserialization/nodejs-proto-prototype-pollution/README.md b/src/pentesting-web/deserialization/nodejs-proto-prototype-pollution/README.md index 92f9b9d5c..7285702e8 100644 --- a/src/pentesting-web/deserialization/nodejs-proto-prototype-pollution/README.md +++ b/src/pentesting-web/deserialization/nodejs-proto-prototype-pollution/README.md @@ -13,7 +13,7 @@ console.log(Object.create(null)) // This will output an empty object. ### JavaScript में फ़ंक्शन और क्लासेस -JavaScript में, क्लासेस और फ़ंक्शंस निकटता से जुड़े होते हैं, जहाँ फ़ंक्शंस अक्सर क्लासेस के लिए कंस्ट्रक्टर्स के रूप में कार्य करते हैं। JavaScript में मूलभूत क्लास समर्थन की कमी के बावजूद, कंस्ट्रक्टर्स क्लास व्यवहार का अनुकरण कर सकते हैं। +JavaScript में, क्लासेस और फ़ंक्शंस निकटता से जुड़े होते हैं, जहाँ फ़ंक्शंस अक्सर क्लासेस के लिए कंस्ट्रक्टर्स के रूप में कार्य करते हैं। JavaScript में मूलभूत क्लास समर्थन की कमी के बावजूद, कंस्ट्रक्टर्स क्लास व्यवहार की नकल कर सकते हैं। ```javascript // Run this in the developers tools console @@ -41,7 +41,7 @@ JavaScript रनटाइम पर प्रोटोटाइप विशे प्रोटोटाइप-आधारित प्रोग्रामिंग में, गुण/विधियाँ वस्तुओं द्वारा वर्गों से विरासत में ली जाती हैं। ये वर्ग अन्य वर्ग के एक उदाहरण या एक खाली वस्तु में गुण/विधियाँ जोड़कर बनाए जाते हैं। -यह ध्यान रखना चाहिए कि जब एक गुण को एक वस्तु में जोड़ा जाता है जो अन्य वस्तुओं के लिए प्रोटोटाइप के रूप में कार्य करती है (जैसे `myPersonObj`), तो विरासत में ली गई वस्तुओं को इस नए गुण तक पहुँच मिलती है। हालाँकि, यह गुण स्वचालित रूप से प्रदर्शित नहीं होता जब तक कि इसे स्पष्ट रूप से नहीं बुलाया जाता। +यह ध्यान दिया जाना चाहिए कि जब एक गुण को एक वस्तु में जोड़ा जाता है जो अन्य वस्तुओं के लिए प्रोटोटाइप के रूप में कार्य करती है (जैसे `myPersonObj`), तो विरासत में ली गई वस्तुओं को इस नए गुण तक पहुँच प्राप्त होती है। हालाँकि, यह गुण स्वचालित रूप से प्रदर्शित नहीं होता जब तक कि इसे स्पष्ट रूप से नहीं बुलाया जाता। ## \_\_proto\_\_ pollution @@ -61,7 +61,7 @@ var car1 = new Vehicle("Tesla Model S") car1.__proto__.__proto__ Vehicle.__proto__.__proto__ ``` -Object प्रोटोटाइप में गुण जोड़कर, हर JavaScript ऑब्जेक्ट इन नए गुणों को विरासत में प्राप्त करेगा: +Object प्रोटोटाइप में गुण जोड़ने से, हर JavaScript ऑब्जेक्ट इन नए गुणों को विरासत में प्राप्त करेगा: ```javascript function Vehicle(model) { this.model = model @@ -102,13 +102,13 @@ car1.constructor.prototype.isElectric = true प्रोटोटाइप प्रदूषण के माध्यम से JavaScript ऑब्जेक्ट्स को वैश्विक रूप से प्रभावित करने के दो तरीके हैं: -1. `Object.prototype` को सीधे प्रदूषित करना: +1. सीधे `Object.prototype` को प्रदूषित करना: ```javascript Object.prototype.goodbye = function () { console.log("Goodbye!") } ``` -2. सामान्य रूप से उपयोग किए जाने वाले ढांचे के लिए एक कंस्ट्रक्टर के प्रोटोटाइप को प्रदूषित करना: +2. एक सामान्य रूप से उपयोग किए जाने वाले संरचना के लिए कंस्ट्रक्टर के प्रोटोटाइप को प्रदूषित करना: ```javascript var example = { key: "value" } example.constructor.prototype.greet = function () { @@ -121,7 +121,7 @@ console.log("Hello!") ### एक क्लास से Object.prototype तक -एक परिदृश्य में जहाँ आप **एक विशिष्ट ऑब्जेक्ट को प्रदूषित** कर सकते हैं और आपको **`Object.prototype` तक पहुँचने** की आवश्यकता है, आप इसके लिए निम्नलिखित कोड की तरह कुछ खोज सकते हैं: +एक परिदृश्य में जहाँ आप **एक विशिष्ट ऑब्जेक्ट को प्रदूषित** कर सकते हैं और आपको **`Object.prototype` तक पहुँचने** की आवश्यकता है, आप इसके लिए निम्नलिखित कोड जैसे कुछ खोज सकते हैं: ```javascript // From https://blog.huli.tw/2022/05/02/en/intigriti-revenge-challenge-author-writeup/ @@ -144,7 +144,7 @@ console.log(key1 + "." + key2) ``` ### Array elements pollution -ध्यान दें कि जैसे आप JS में ऑब्जेक्ट्स के गुणों को प्रदूषित कर सकते हैं, यदि आपके पास एक एरे को प्रदूषित करने की पहुंच है, तो आप **एरे के मानों को भी प्रदूषित कर सकते हैं** जो **इंडेक्स द्वारा उपलब्ध हैं** (ध्यान दें कि आप मानों को ओवरराइट नहीं कर सकते, इसलिए आपको उन इंडेक्स को प्रदूषित करना होगा जो किसी न किसी तरह से उपयोग किए जाते हैं लेकिन लिखे नहीं जाते)। +ध्यान दें कि जैसे आप JS में ऑब्जेक्ट्स के गुणों को प्रदूषित कर सकते हैं, यदि आपके पास एक एरे को प्रदूषित करने की पहुंच है, तो आप **एरे के मानों को भी प्रदूषित कर सकते हैं** जो **इंडेक्स द्वारा सुलभ हैं** (ध्यान दें कि आप मानों को ओवरराइट नहीं कर सकते, इसलिए आपको उन इंडेक्स को प्रदूषित करना होगा जो किसी न किसी तरह से उपयोग किए जाते हैं लेकिन लिखे नहीं जाते)। ```javascript c = [1, 2] a = [] @@ -154,7 +154,7 @@ b[0] //undefined b[1] //"yolo" c[1] // 2 -- not ``` -### Html तत्वों का प्रदूषण +### Html elements pollution जब JS के माध्यम से एक HTML तत्व उत्पन्न किया जाता है, तो **`innerHTML`** विशेषता को **ओवरराइट** करना संभव है ताकि यह **मनमाने HTML कोड** को लिख सके। [इस लेख से विचार और उदाहरण](https://blog.huli.tw/2022/04/25/en/intigriti-0422-xss-challenge-author-writeup/)। ```javascript @@ -177,7 +177,7 @@ settings[root][ownerDocument][body][innerHTML]="