@@ -35,7 +35,7 @@ app.run()
### **Debug Statement**
-यदि Debug Extension सक्षम है, तो एक `debug` टैग उपलब्ध होगा जो वर्तमान संदर्भ के साथ-साथ उपलब्ध फ़िल्टर और परीक्षणों को डंप करेगा। यह टेम्पलेट में उपयोग के लिए क्या उपलब्ध है, यह देखने के लिए उपयोगी है बिना डिबगर सेट किए।
+यदि Debug Extension सक्षम है, तो एक `debug` टैग उपलब्ध होगा जो वर्तमान संदर्भ के साथ-साथ उपलब्ध फ़िल्टर और परीक्षणों को डंप करेगा। यह टेम्पलेट में उपयोग के लिए उपलब्ध चीज़ों को देखने के लिए उपयोगी है बिना डिबगर सेटअप किए।
```python
@@ -47,6 +47,7 @@ app.run()
+
```
### **सभी कॉन्फ़िगरेशन वेरिएबल्स को डंप करें**
@@ -63,6 +64,7 @@ app.run()
+
```
## **Jinja Injection**
@@ -70,8 +72,8 @@ app.run()
### Global Objects तक पहुंच
-उदाहरण के लिए, कोड `render_template("hello.html", username=username, email=email)` में वस्तुएं username और email **गैर-सैंडबॉक्स पायथन वातावरण से आती हैं** और **सैंडबॉक्स वातावरण के अंदर सुलभ होंगी।**\
-इसके अलावा, अन्य वस्तुएं हैं जो **हमेशा सैंडबॉक्स वातावरण से सुलभ होंगी**, ये हैं:
+उदाहरण के लिए, कोड `render_template("hello.html", username=username, email=email)` में वस्तुएं username और email **गैर-सैंडबॉक्स पायथन वातावरण से आती हैं** और **सैंडबॉक्स वातावरण** के अंदर **सुलभ** होंगी।\
+इसके अलावा, अन्य वस्तुएं हैं जो **हमेशा सैंडबॉक्स वातावरण से सुलभ** होंगी, ये हैं:
```
[]
''
@@ -84,7 +86,7 @@ request
फिर, इन ऑब्जेक्ट्स से हमें **``** क्लास तक पहुंचने की आवश्यकता है ताकि हम परिभाषित **क्लासेस** को **recover** करने की कोशिश कर सकें। इसका कारण यह है कि इस ऑब्जेक्ट से हम **`__subclasses__`** मेथड को कॉल कर सकते हैं और **non-sandboxed** python env से सभी क्लासेस तक पहुंच सकते हैं।
-इस **ऑब्जेक्ट क्लास** तक पहुंचने के लिए, आपको **क्लास ऑब्जेक्ट** तक पहुंचने की आवश्यकता है और फिर या तो **`__base__`**, **`__mro__()[-1]`** या `.`**`mro()[-1]`** तक पहुंचें। और फिर, **इस ऑब्जेक्ट क्लास** तक पहुंचने के बाद हम **`__subclasses__()`** को **call** करते हैं।
+उस **ऑब्जेक्ट क्लास** तक पहुंचने के लिए, आपको **एक क्लास ऑब्जेक्ट** तक पहुंचने की आवश्यकता है और फिर **`__base__`**, **`__mro__()[-1]`** या `.`**`mro()[-1]`** में से किसी एक तक पहुंचें। और फिर, **इस ऑब्जेक्ट क्लास** तक पहुंचने के बाद हम **`__subclasses__()`** को **call** करते हैं।
इन उदाहरणों को देखें:
```python
@@ -123,6 +125,7 @@ dict.__mro__[-1]
+
# Not sure if this will work, but I saw it somewhere
{{ [].class.base.subclasses() }}
{{ ''.class.mro()[1].subclasses() }}
@@ -201,10 +204,11 @@ http://localhost:5000/?c={{request|attr(request.args.getlist(request.args.l)|joi
+
```
-* [**यहां अधिक विकल्पों के लिए वापस लौटें जो एक वैश्विक ऑब्जेक्ट तक पहुँचने के लिए हैं**](jinja2-ssti.md#accessing-global-objects)
-* [**यहां अधिक विकल्पों के लिए वापस लौटें जो ऑब्जेक्ट क्लास तक पहुँचने के लिए हैं**](jinja2-ssti.md#recovering-less-than-class-object-greater-than)
-* [**यह पढ़ें ताकि आप ऑब्जेक्ट क्लास के बिना RCE प्राप्त कर सकें**](jinja2-ssti.md#jinja-injection-without-less-than-class-object-greater-than)
+* [**यहां अधिक विकल्पों के लिए वापस लौटें ताकि एक वैश्विक वस्तु तक पहुंच सकें**](jinja2-ssti.md#accessing-global-objects)
+* [**यहां अधिक विकल्पों के लिए वापस लौटें ताकि वस्तु वर्ग तक पहुंच सकें**](jinja2-ssti.md#recovering-less-than-class-object-greater-than)
+* [**यह पढ़ें ताकि वस्तु वर्ग के बिना RCE प्राप्त कर सकें**](jinja2-ssti.md#jinja-injection-without-less-than-class-object-greater-than)
**HTML एन्कोडिंग से बचना**
@@ -241,6 +245,7 @@ http://localhost:5000/?c={{request|attr(request.args.getlist(request.args.l)|joi
+
```
## Jinja Injection बिना **\**
@@ -281,6 +286,7 @@ http://localhost:5000/?c={{request|attr(request.args.getlist(request.args.l)|joi
{% with a = request["application"]["\x5f\x5fglobals\x5f\x5f"]["\x5f\x5fbuiltins\x5f\x5f"]["\x5f\x5fimport\x5f\x5f"]("os")["popen"]("ls")["read"]() %} {{ a }} {% endwith %}
{% endraw %}
+
## Extra
## The global from config have a access to a function called import_string
## with this function you don't need to access the builtins
@@ -323,8 +329,8 @@ The request will be urlencoded by default according to the HTTP format, which ca
* [https://hackmd.io/@Chivato/HyWsJ31dI](https://hackmd.io/@Chivato/HyWsJ31dI)
{% hint style="success" %}
-AWS हैकिंग सीखें और अभ्यास करें:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\
-GCP हैकिंग सीखें और अभ्यास करें: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
+AWS हैकिंग सीखें और अभ्यास करें:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\
+GCP हैकिंग सीखें और अभ्यास करें: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
diff --git a/pentesting-web/xss-cross-site-scripting/README.md b/pentesting-web/xss-cross-site-scripting/README.md
index e9983c99d..e18b4650f 100644
--- a/pentesting-web/xss-cross-site-scripting/README.md
+++ b/pentesting-web/xss-cross-site-scripting/README.md
@@ -6,11 +6,11 @@
{% embed url="https://www.stmcyber.com/careers" %}
-## कार्यप्रणाली
+## पद्धति
-1. जांचें कि **कोई भी मान जिसे आप नियंत्रित करते हैं** (_पैरामीटर_, _पथ_, _हेडर_?, _कुकीज़_?) **HTML में परावर्तित** हो रहा है या **JS** कोड द्वारा **उपयोग किया जा रहा है**।
-2. **संदर्भ खोजें** जहां यह परावर्तित/उपयोग किया गया है।
-3. यदि **परावर्तित** है
+1. जांचें कि **कोई भी मान जिसे आप नियंत्रित करते हैं** (_पैरामीटर_, _पथ_, _हेडर_?, _कुकीज़_?) **HTML में परिलक्षित** हो रहा है या **JS** कोड द्वारा **उपयोग किया जा रहा है**।
+2. **संदर्भ खोजें** जहां यह परिलक्षित/उपयोग किया गया है।
+3. यदि **परिलक्षित** है:
1. जांचें **आप कौन से प्रतीकों का उपयोग कर सकते हैं** और उसके आधार पर, पेलोड तैयार करें:
1. **कच्चे HTML** में:
1. क्या आप नए HTML टैग बना सकते हैं?
@@ -28,8 +28,8 @@
2. क्या आप स्ट्रिंग को बचा सकते हैं और विभिन्न JS कोड निष्पादित कर सकते हैं?
3. क्या आपका इनपुट टेम्पलेट लिटेरल \`\` में है?
4. क्या आप सुरक्षा को बायपास कर सकते हैं?
-4. Javascript **कार्य** जो **निष्पादित** हो रहा है
-1. आप निष्पादित करने के लिए कार्य का नाम निर्दिष्ट कर सकते हैं। उदाहरण: `?callback=alert(1)`
+4. Javascript **फंक्शन** जो **निष्पादित** हो रहा है:
+1. आप निष्पादित करने के लिए फंक्शन का नाम निर्दिष्ट कर सकते हैं। उदाहरण: `?callback=alert(1)`
4. यदि **उपयोग किया गया**:
1. आप **DOM XSS** का शोषण कर सकते हैं, ध्यान दें कि आपका इनपुट कैसे नियंत्रित है और यदि आपका **नियंत्रित इनपुट किसी सिंक द्वारा उपयोग किया जा रहा है।**
@@ -39,31 +39,31 @@
[debugging-client-side-js.md](debugging-client-side-js.md)
{% endcontent-ref %}
-## परावर्तित मान
+## परिलक्षित मान
-XSS का सफलतापूर्वक शोषण करने के लिए, आपको सबसे पहले एक **मान खोजने की आवश्यकता है जिसे आप नियंत्रित करते हैं और जो वेब पृष्ठ में परावर्तित हो रहा है**।
+XSS का सफलतापूर्वक शोषण करने के लिए, आपको सबसे पहले एक **मान खोजने की आवश्यकता है जिसे आप नियंत्रित करते हैं और जो वेब पृष्ठ में परिलक्षित हो रहा है**।
-* **अंतरिम रूप से परावर्तित**: यदि आप पाते हैं कि किसी पैरामीटर का मान या यहां तक कि पथ वेब पृष्ठ में परावर्तित हो रहा है, तो आप **परावर्तित XSS** का शोषण कर सकते हैं।
-* **संग्रहीत और परावर्तित**: यदि आप पाते हैं कि एक मान जिसे आप नियंत्रित करते हैं, सर्वर में सहेजा गया है और हर बार जब आप एक पृष्ठ तक पहुँचते हैं तो यह परावर्तित होता है, तो आप **संग्रहीत XSS** का शोषण कर सकते हैं।
+* **अंतरिम रूप से परिलक्षित**: यदि आप पाते हैं कि किसी पैरामीटर का मान या यहां तक कि पथ वेब पृष्ठ में परिलक्षित हो रहा है, तो आप **परिलक्षित XSS** का शोषण कर सकते हैं।
+* **संग्रहीत और परिलक्षित**: यदि आप पाते हैं कि एक मान जिसे आप नियंत्रित करते हैं, सर्वर में सहेजा गया है और हर बार जब आप एक पृष्ठ तक पहुँचते हैं तो यह परिलक्षित होता है, तो आप **संग्रहीत XSS** का शोषण कर सकते हैं।
* **JS के माध्यम से पहुँचा गया**: यदि आप पाते हैं कि एक मान जिसे आप नियंत्रित करते हैं, JS का उपयोग करके पहुँच रहा है, तो आप **DOM XSS** का शोषण कर सकते हैं।
## संदर्भ
-जब आप XSS का शोषण करने की कोशिश कर रहे हों, तो सबसे पहले आपको यह जानने की आवश्यकता है कि **आपका इनपुट कहाँ परावर्तित हो रहा है**। संदर्भ के आधार पर, आप विभिन्न तरीकों से मनमाना JS कोड निष्पादित कर सकेंगे।
+जब आप XSS का शोषण करने की कोशिश कर रहे हों, तो सबसे पहले आपको यह जानने की आवश्यकता है कि **आपका इनपुट कहाँ परिलक्षित हो रहा है**। संदर्भ के आधार पर, आप विभिन्न तरीकों से मनमाना JS कोड निष्पादित कर सकेंगे।
### कच्चा HTML
-यदि आपका इनपुट **कच्चे HTML** पृष्ठ पर **परावर्तित** होता है, तो आपको JS कोड निष्पादित करने के लिए कुछ **HTML टैग** का दुरुपयोग करना होगा: `` को एन्कोड किया गया है या हटा दिया गया है), तो टैग के आधार पर आप **एक इवेंट बना सकते हैं** जो JS कोड निष्पादित करता है: `" autofocus onfocus=alert(1) x="`
-3. यदि आप **विशेषता से बाहर नहीं निकल सकते** (`"` को एन्कोड किया गया है या हटा दिया गया है), तो यह निर्भर करता है कि **कौन सी विशेषता** में आपका मान परावर्तित हो रहा है **यदि आप पूरे मान को नियंत्रित करते हैं या केवल एक भाग** आप इसका दुरुपयोग कर सकेंगे। **उदाहरण** के लिए, यदि आप एक इवेंट जैसे `onclick=` को नियंत्रित करते हैं, तो आप इसे क्लिक करने पर मनमाना कोड निष्पादित करने के लिए बना सकेंगे। एक और दिलचस्प **उदाहरण** विशेषता `href` है, जहां आप मनमाना कोड निष्पादित करने के लिए `javascript:` प्रोटोकॉल का उपयोग कर सकते हैं: **`href="javascript:alert(1)"`**
-4. यदि आपका इनपुट "**अविकसित टैग**" के अंदर परावर्तित होता है, तो आप **`accesskey`** ट्रिक का प्रयास कर सकते हैं (आपको इसे शोषित करने के लिए किसी प्रकार की सामाजिक इंजीनियरिंग की आवश्यकता होगी): **`" accesskey="x" onclick="alert(1)" x="**
+3. यदि आप **विशेषता से बाहर नहीं निकल सकते** (`"` को एन्कोड किया गया है या हटा दिया गया है), तो यह निर्भर करता है कि **कौन सी विशेषता** में आपका मान परिलक्षित हो रहा है **यदि आप पूरे मान को नियंत्रित करते हैं या केवल एक भाग** आप इसका दुरुपयोग कर सकेंगे। उदाहरण के लिए, यदि आप `onclick=` जैसे इवेंट को नियंत्रित करते हैं, तो आप इसे क्लिक करने पर मनमाना कोड निष्पादित करने के लिए बना सकेंगे। एक और दिलचस्प **उदाहरण** विशेषता `href` है, जहां आप मनमाना कोड निष्पादित करने के लिए `javascript:` प्रोटोकॉल का उपयोग कर सकते हैं: **`href="javascript:alert(1)"`**
+4. यदि आपका इनपुट "**अविकसित टैग**" के अंदर परिलक्षित है, तो आप **`accesskey`** ट्रिक का प्रयास कर सकते हैं (आपको इसे शोषित करने के लिए कुछ प्रकार की सामाजिक इंजीनियरिंग की आवश्यकता होगी): **`" accesskey="x" onclick="alert(1)" x="`**
यदि आप एक वर्ग नाम को नियंत्रित करते हैं तो Angular द्वारा XSS निष्पादित करने का अजीब उदाहरण:
```html
@@ -89,7 +89,7 @@ XSS का सफलतापूर्वक शोषण करने के
```
#### Javascript Hoisting
-Javascript Hoisting उस अवसर को संदर्भित करता है **जहाँ आप कार्यों, चर या कक्षाओं को उनके उपयोग के बाद घोषित कर सकते हैं ताकि आप उन परिदृश्यों का दुरुपयोग कर सकें जहाँ एक XSS अव्यवस्थित चर या कार्यों का उपयोग कर रहा है।**\
+Javascript Hoisting उस अवसर को संदर्भित करता है **जहाँ आप कार्यों, चर या कक्षाओं को उनके उपयोग के बाद घोषित कर सकते हैं ताकि आप उन परिदृश्यों का दुरुपयोग कर सकें जहाँ XSS अव्यवस्थित चर या कार्यों का उपयोग कर रहा है।**\
**अधिक जानकारी के लिए निम्नलिखित पृष्ठ देखें:**
{% content-ref url="js-hoisting.md" %}
@@ -98,13 +98,13 @@ Javascript Hoisting उस अवसर को संदर्भित कर
### Javascript Function
-कई वेब पृष्ठों में ऐसे एंडपॉइंट होते हैं जो **कार्य को निष्पादित करने के लिए पैरामीटर के रूप में कार्य का नाम स्वीकार करते हैं**। एक सामान्य उदाहरण जो वास्तविक जीवन में देखने को मिलता है वह है: `?callback=callbackFunc`.
+कई वेब पृष्ठों में ऐसे एंडपॉइंट होते हैं जो **कार्य को निष्पादित करने के लिए पैरामीटर के रूप में कार्य का नाम स्वीकार करते हैं।** एक सामान्य उदाहरण जो वास्तविक जीवन में देखने को मिलता है वह है: `?callback=callbackFunc`.
-यह पता लगाने का एक अच्छा तरीका है कि क्या उपयोगकर्ता द्वारा सीधे दिया गया कुछ निष्पादित करने की कोशिश कर रहा है **पैरामीटर मान को संशोधित करना** (उदाहरण के लिए 'Vulnerable' में) और कंसोल में त्रुटियों की तलाश करना जैसे:
+यह पता लगाने का एक अच्छा तरीका है कि क्या उपयोगकर्ता द्वारा सीधे दिया गया कुछ निष्पादित करने की कोशिश कर रहा है, **पैरामीटर मान को संशोधित करना** (उदाहरण के लिए 'Vulnerable' में) और कंसोल में त्रुटियों की तलाश करना जैसे:
![](<../../.gitbook/assets/image (711).png>)
-यदि यह संवेदनशील है, तो आप **एक अलर्ट को ट्रिगर करने में सक्षम हो सकते हैं** केवल मान भेजकर: **`?callback=alert(1)`**। हालाँकि, यह बहुत सामान्य है कि ये एंडपॉइंट **सामग्री को मान्य करेंगे** ताकि केवल अक्षरों, संख्याओं, बिंदुओं और अंडरस्कोर की अनुमति दी जा सके (**`[\w\._]`**).
+यदि यह संवेदनशील है, तो आप **एक अलर्ट ट्रिगर कर सकते हैं** केवल मान भेजकर: **`?callback=alert(1)`**। हालाँकि, यह बहुत सामान्य है कि ये एंडपॉइंट **सामग्री को मान्य करेंगे** ताकि केवल अक्षरों, संख्याओं, बिंदुओं और अंडरस्कोर की अनुमति दी जा सके (**`[\w\._]`**).
हालांकि, उस सीमा के बावजूद कुछ क्रियाएँ करना अभी भी संभव है। इसका कारण यह है कि आप उन मान्य वर्णों का उपयोग करके **DOM में किसी भी तत्व तक पहुँच सकते हैं**:
@@ -118,9 +118,9 @@ nextElementSibiling
lastElementSibiling
parentElement
```
-आप सीधे **Javascript फ़ंक्शंस** को भी **ट्रिगर** करने की कोशिश कर सकते हैं: `obj.sales.delOrders`।
+आप सीधे **Javascript फ़ंक्शन** को भी **ट्रिगर** करने की कोशिश कर सकते हैं: `obj.sales.delOrders`।
-हालांकि, आमतौर पर निर्दिष्ट फ़ंक्शन को निष्पादित करने वाले एंडपॉइंट्स ऐसे एंडपॉइंट्स होते हैं जिनमें ज्यादा दिलचस्प DOM नहीं होता है, **एक ही मूल में अन्य पृष्ठों** में **ज्यादा दिलचस्प DOM** होगा जिससे अधिक क्रियाएँ की जा सकें।
+हालांकि, आमतौर पर निर्दिष्ट फ़ंक्शन को निष्पादित करने वाले एंडपॉइंट्स ऐसे एंडपॉइंट्स होते हैं जिनमें ज्यादा दिलचस्प DOM नहीं होता है, **समान मूल के अन्य पृष्ठों** में **ज्यादा दिलचस्प DOM** होगा ताकि अधिक क्रियाएँ की जा सकें।
इसलिए, **विभिन्न DOM में इस कमजोरियों का दुरुपयोग करने के लिए** **Same Origin Method Execution (SOME)** शोषण विकसित किया गया:
@@ -130,7 +130,7 @@ parentElement
### DOM
-यहाँ **JS कोड** है जो **असुरक्षित** तरीके से कुछ **हमलावर द्वारा नियंत्रित डेटा** का उपयोग कर रहा है जैसे `location.href`। एक हमलावर, इसका दुरुपयोग करके मनमाना JS कोड निष्पादित कर सकता है।
+यहाँ **JS कोड** है जो **असुरक्षित** तरीके से कुछ **हमलावर द्वारा नियंत्रित डेटा** का उपयोग कर रहा है जैसे `location.href`। एक हमलावर, इसे मनमाने JS कोड को निष्पादित करने के लिए दुरुपयोग कर सकता है।
{% content-ref url="dom-xss.md" %}
[dom-xss.md](dom-xss.md)
@@ -157,7 +157,7 @@ parentElement
जब आपका इनपुट **HTML पृष्ठ के अंदर** परिलक्षित होता है या आप इस संदर्भ में HTML कोड को बचा सकते हैं और इंजेक्ट कर सकते हैं, तो **पहली** चीज़ जो आपको करनी चाहिए वह यह है कि आप जांचें कि क्या आप `<` का दुरुपयोग करके नए टैग बना सकते हैं: बस उस **चर** को **परिलक्षित** करने की कोशिश करें और जांचें कि क्या इसे **HTML एन्कोडेड** किया गया है या **हटाया** गया है या यदि यह **बिना बदलाव के परिलक्षित** हो रहा है। **केवल अंतिम मामले में आप इस मामले का शोषण कर पाएंगे**।\
इन मामलों के लिए **याद रखें** [**Client Side Template Injection**](../client-side-template-injection-csti.md)**।**\
-_**नोट: एक HTML टिप्पणी को बंद करने के लिए**** ****`-->`**** ****या**** ****`--!>`**_
+_**नोट: एक HTML टिप्पणी को बंद करने के लिए\*\*\*\***** ****`-->`**** ****या \*\*\*\*****`--!>`**_
इस मामले में और यदि कोई ब्लैक/व्हाइटलिस्टिंग का उपयोग नहीं किया गया है, तो आप ऐसे पे लोड का उपयोग कर सकते हैं:
```html
@@ -247,7 +247,7 @@ To check in which characters are decomposed check [here](https://www.compart.com
### Click XSS - Clickjacking
-यदि किसी भेद्यता का लाभ उठाने के लिए आपको **उपयोगकर्ता को एक लिंक या एक फॉर्म** पर क्लिक करने की आवश्यकता है जिसमें पूर्व-भरे हुए डेटा हैं, तो आप [**Clickjacking का दुरुपयोग करने की कोशिश कर सकते हैं**](../clickjacking.md#xss-clickjacking) (यदि पृष्ठ कमजोर है)।
+यदि किसी भेद्यता का लाभ उठाने के लिए आपको **उपयोगकर्ता को एक लिंक या एक फॉर्म** पर क्लिक करने की आवश्यकता है जिसमें पूर्व-भरे हुए डेटा हैं, तो आप [**Clickjacking का दुरुपयोग करने की कोशिश कर सकते हैं**](../clickjacking.md#xss-clickjacking) (यदि पृष्ठ भेद्य है)।
### Impossible - Dangling Markup
@@ -257,8 +257,8 @@ To check in which characters are decomposed check [here](https://www.compart.com
### Inside the tag/escaping from attribute value
-यदि आप **HTML टैग के अंदर हैं**, तो आप जो पहली चीज़ कर सकते हैं वह है टैग से **escape** करना और [पिछले अनुभाग](./#injecting-inside-raw-html) में उल्लेखित कुछ तकनीकों का उपयोग करना ताकि JS कोड निष्पादित किया जा सके।\
-यदि आप **टैग से escape नहीं कर सकते**, तो आप टैग के अंदर नए विशेषताएँ बना सकते हैं ताकि JS कोड निष्पादित करने की कोशिश की जा सके, उदाहरण के लिए कुछ payload का उपयोग करके ((_ध्यान दें कि इस उदाहरण में विशेषता से escape करने के लिए डबल उद्धरण का उपयोग किया गया है, यदि आपका इनपुट सीधे टैग के अंदर परिलक्षित होता है तो आपको उनकी आवश्यकता नहीं होगी_)):
+यदि आप **HTML टैग के अंदर हैं**, तो आप जो पहली चीज़ कर सकते हैं वह है **टैग से बचना** और [पिछले अनुभाग](./#injecting-inside-raw-html) में उल्लेखित कुछ तकनीकों का उपयोग करके JS कोड निष्पादित करना।\
+यदि आप **टैग से नहीं बच सकते**, तो आप टैग के अंदर नए विशेषताएँ बना सकते हैं ताकि JS कोड निष्पादित करने की कोशिश की जा सके, उदाहरण के लिए कुछ पेलोड का उपयोग करके (_ध्यान दें कि इस उदाहरण में विशेषता से बचने के लिए डबल कोट्स का उपयोग किया गया है, यदि आपका इनपुट सीधे टैग के अंदर परिलक्षित होता है तो आपको उनकी आवश्यकता नहीं होगी_):
```bash
" autofocus onfocus=alert(document.domain) x="
" onfocus=alert(1) id=x tabindex=0 style=display:block>#x #Access http://site.com/?#x t
@@ -273,14 +273,14 @@ To check in which characters are decomposed check [here](https://www.compart.com
#moving your mouse anywhere over the page (0-click-ish):
```
-### विशेषता के भीतर
+### Within the attribute
-यहां तक कि अगर आप **विशेषता से बच नहीं सकते** (`"` को एन्कोड या हटा दिया गया है), यह इस पर निर्भर करता है कि **कौन सी विशेषता** में आपका मान परिलक्षित हो रहा है **यदि आप सभी मान को नियंत्रित करते हैं या केवल एक भाग** तो आप इसका दुरुपयोग कर सकेंगे। **उदाहरण के लिए**, यदि आप एक इवेंट को नियंत्रित करते हैं जैसे `onclick=` तो आप इसे क्लिक करने पर मनमाना कोड निष्पादित करने के लिए बना सकेंगे।\
-एक और दिलचस्प **उदाहरण** विशेषता `href` है, जहां आप मनमाना कोड निष्पादित करने के लिए `javascript:` प्रोटोकॉल का उपयोग कर सकते हैं: **`href="javascript:alert(1)"`**
+यहां तक कि अगर आप **attribute से बाहर नहीं निकल सकते** (`"` को एन्कोड या हटा दिया गया है), यह इस पर निर्भर करता है कि **कौन सा attribute** आपके मान में परिलक्षित हो रहा है **यदि आप सभी मान को नियंत्रित करते हैं या केवल एक भाग** तो आप इसका दुरुपयोग कर सकेंगे। **उदाहरण के लिए**, यदि आप एक इवेंट को नियंत्रित करते हैं जैसे `onclick=` तो आप इसे क्लिक करने पर मनमाना कोड निष्पादित करने के लिए बना सकेंगे।\
+एक और दिलचस्प **उदाहरण** है attribute `href`, जहां आप `javascript:` प्रोटोकॉल का उपयोग करके मनमाना कोड निष्पादित कर सकते हैं: **`href="javascript:alert(1)"`**
-**HTML एन्कोडिंग/URL एन्कोड का उपयोग करके इवेंट के भीतर बायपास करें**
+**HTML एन्कोडिंग/URL एन्कोड का उपयोग करके इवेंट के अंदर बायपास करें**
-HTML टैग विशेषताओं के मान के भीतर **HTML एन्कोडेड वर्ण** **रनटाइम पर डिकोड** होते हैं। इसलिए निम्नलिखित कुछ इस तरह मान्य होगा (पेलोड बोल्ड में है): `Go Back `
+HTML टैग के attributes के मान के अंदर **HTML एन्कोडेड कैरेक्टर्स** **रनटाइम पर डिकोड** होते हैं। इसलिए निम्नलिखित कुछ इस तरह मान्य होगा (पेलोड बोल्ड में है): `Go Back `
ध्यान दें कि **किसी भी प्रकार की HTML एन्कोड मान्य है**:
```javascript
@@ -311,7 +311,7 @@ HTML टैग विशेषताओं के मान के भीतर
```
### विशेष प्रोटोकॉल विशेषता के भीतर
-यहां आप कुछ स्थानों पर **`javascript:`** या **`data:`** प्रोटोकॉल का उपयोग कर सकते हैं **मनमाने JS कोड** को **निष्पादित करने** के लिए। कुछ के लिए उपयोगकर्ता इंटरैक्शन की आवश्यकता होगी और कुछ के लिए नहीं।
+यहां आप कुछ स्थानों पर **`javascript:`** या **`data:`** प्रोटोकॉल का उपयोग कर सकते हैं **मनमाने JS कोड** को **निष्पादित** करने के लिए। कुछ को उपयोगकर्ता इंटरैक्शन की आवश्यकता होगी और कुछ को नहीं।
```javascript
javascript:alert(1)
JavaSCript:alert(1)
@@ -353,7 +353,7 @@ data:image/svg+xml;base64,PHN2ZyB4bWxuczpzdmc9Imh0dH A6Ly93d3cudzMub3JnLzIwMDAvc