DOM XSS
DOM Vulnerabilities
DOM कमजोरियाँ तब होती हैं जब हमलावर-नियंत्रित स्रोतों (जैसे location.search
, document.referrer
, या document.cookie
) से डेटा असुरक्षित रूप से सिंक में स्थानांतरित किया जाता है। सिंक वे फ़ंक्शन या ऑब्जेक्ट होते हैं (जैसे, eval()
, document.body.innerHTML
) जो यदि दुर्भावनापूर्ण डेटा दिया जाए तो हानिकारक सामग्री को निष्पादित या प्रस्तुत कर सकते हैं।
स्रोत वे इनपुट हैं जिन्हें हमलावरों द्वारा हेरफेर किया जा सकता है, जिसमें URL, कुकीज़, और वेब संदेश शामिल हैं।
सिंक संभावित रूप से खतरनाक एंडपॉइंट हैं जहाँ दुर्भावनापूर्ण डेटा प्रतिकूल प्रभावों का कारण बन सकता है, जैसे कि स्क्रिप्ट निष्पादन।
जोखिम तब उत्पन्न होता है जब डेटा एक स्रोत से एक सिंक में उचित सत्यापन या सफाई के बिना प्रवाहित होता है, जिससे XSS जैसे हमलों की अनुमति मिलती है।
आप स्रोतों और सिंक की एक अधिक अद्यतन सूची पा सकते हैं https://github.com/wisec/domxsswiki/wiki
सामान्य स्रोत:
सामान्य सिंक:
jQuery | |||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
|
|
|
|
|
|
|
|
|
|
| |
|
|
|
|
|
|
| |
|
|
| |
|
|
| |
|
|
|
|
|
|
| |
|
|
| |
|
|
| |
|
| ||
|
| `` | `` |
innerHTML
सिंक किसी भी आधुनिक ब्राउज़र पर script
तत्वों को स्वीकार नहीं करता है, न ही svg onload
घटनाएँ चलेंगी। इसका मतलब है कि आपको img
या iframe
जैसे वैकल्पिक तत्वों का उपयोग करना होगा।
इस प्रकार का XSS शायद खोजने के लिए सबसे कठिन है, क्योंकि आपको JS कोड के अंदर देखना होगा, यह देखना होगा कि क्या यह किसी वस्तु का उपयोग कर रहा है जिसका मूल्य आप नियंत्रित करते हैं, और इस मामले में, यह देखना होगा कि क्या इसे मनमाने JS को निष्पादित करने के लिए दुरुपयोग करने का कोई तरीका है।
उन्हें खोजने के उपकरण
संभावित सिंक तक पहुँचने वाले हर डेटा की जाँच करने के लिए ब्राउज़र एक्सटेंशन: https://github.com/kevin-mizu/domloggerpp
उदाहरण
ओपन रीडायरेक्ट
से: https://portswigger.net/web-security/dom-based/open-redirection
DOM में ओपन रीडायरेक्ट कमजोरियाँ तब होती हैं जब एक स्क्रिप्ट डेटा लिखती है, जिसे एक हमलावर नियंत्रित कर सकता है, एक सिंक में जो डोमेन के बीच नेविगेशन शुरू करने में सक्षम है।
यह समझना महत्वपूर्ण है कि मनमाना कोड निष्पादित करना, जैसे कि javascript:alert(1)
, संभव है यदि आपके पास उस URL की शुरुआत पर नियंत्रण है जहाँ रीडायरेक्ट होता है।
सिंक:
कुकी हेरफेर
From: https://portswigger.net/web-security/dom-based/cookie-manipulation
DOM-आधारित कुकी-हेरफेर कमजोरियाँ तब होती हैं जब एक स्क्रिप्ट डेटा को शामिल करती है, जिसे हमलावर द्वारा नियंत्रित किया जा सकता है, कुकी के मान में। यदि कुकी का उपयोग साइट के भीतर किया जाता है, तो यह कमजोरी वेबपेज के अप्रत्याशित व्यवहार का कारण बन सकती है। इसके अतिरिक्त, यदि कुकी उपयोगकर्ता सत्रों को ट्रैक करने में शामिल है, तो इसका उपयोग सत्र स्थिरीकरण हमले को अंजाम देने के लिए किया जा सकता है। इस कमजोरी से संबंधित प्राथमिक सिंक है:
Sinks:
JavaScript Injection
From: https://portswigger.net/web-security/dom-based/javascript-injection
DOM-आधारित JavaScript इंजेक्शन कमजोरियाँ तब उत्पन्न होती हैं जब एक स्क्रिप्ट डेटा चलाती है, जिसे एक हमलावर द्वारा नियंत्रित किया जा सकता है, JavaScript कोड के रूप में।
Sinks:
Document-domain manipulation
From: https://portswigger.net/web-security/dom-based/document-domain-manipulation
Document-domain manipulation vulnerabilities तब होती हैं जब एक स्क्रिप्ट document.domain
प्रॉपर्टी को ऐसे डेटा का उपयोग करके सेट करती है जिसे एक हमलावर नियंत्रित कर सकता है।
document.domain
प्रॉपर्टी same-origin policy के enforcement में मुख्य भूमिका निभाती है। जब विभिन्न मूल से दो पृष्ठ अपने document.domain
को एक ही मान पर सेट करते हैं, तो वे बिना किसी प्रतिबंध के इंटरैक्ट कर सकते हैं। हालांकि ब्राउज़र document.domain
के लिए असाइन किए जाने वाले मानों पर कुछ सीमाएँ लगाते हैं, जो वास्तविक पृष्ठ मूल के लिए पूरी तरह से असंबंधित मानों के असाइनमेंट को रोकते हैं, लेकिन अपवाद मौजूद हैं। आमतौर पर, ब्राउज़र child या parent domains के उपयोग की अनुमति देते हैं।
Sinks:
WebSocket-URL poisoning
From: https://portswigger.net/web-security/dom-based/websocket-url-poisoning
WebSocket-URL poisoning तब होता है जब एक स्क्रिप्ट नियंत्रित डेटा को WebSocket कनेक्शन के लिए लक्षित URL के रूप में उपयोग करती है।
Sinks:
WebSocket
कंस्ट्रक्टर WebSocket-URL poisoning कमजोरियों की ओर ले जा सकता है।
Link manipulation
From: https://portswigger.net/web-security/dom-based/link-manipulation
DOM-आधारित लिंक-हेरफेर कमजोरियाँ तब उत्पन्न होती हैं जब एक स्क्रिप्ट हमलावर-नियंत्रित डेटा को वर्तमान पृष्ठ के भीतर एक नेविगेशन लक्ष्य पर लिखती है, जैसे कि एक क्लिक करने योग्य लिंक या एक फॉर्म का सबमिशन URL।
Sinks:
Ajax अनुरोध हेरफेर
From: https://portswigger.net/web-security/dom-based/ajax-request-header-manipulation
Ajax अनुरोध हेरफेर कमजोरियाँ तब उत्पन्न होती हैं जब एक स्क्रिप्ट हमलावर-नियंत्रित डेटा को एक Ajax अनुरोध में लिखती है जो XmlHttpRequest
ऑब्जेक्ट का उपयोग करके जारी किया जाता है।
Sinks:
स्थानीय फ़ाइल-पथ हेरफेर
From: https://portswigger.net/web-security/dom-based/local-file-path-manipulation
स्थानीय फ़ाइल-पथ हेरफेर की कमजोरियाँ तब उत्पन्न होती हैं जब एक स्क्रिप्ट हमलावर-नियंत्रित डेटा को फ़ाइल-हैंडलिंग API में filename
पैरामीटर के रूप में पास करती है। इस कमजोरी का उपयोग एक हमलावर द्वारा एक URL बनाने के लिए किया जा सकता है जो, यदि किसी अन्य उपयोगकर्ता द्वारा देखा जाए, तो उपयोगकर्ता के ब्राउज़र को एक मनमाना स्थानीय फ़ाइल खोलने या लिखने के लिए प्रेरित कर सकता है।
Sinks:
Client-Side SQl injection
From: https://portswigger.net/web-security/dom-based/client-side-sql-injection
क्लाइंट-साइड SQL-इंजेक्शन कमजोरियाँ तब होती हैं जब एक स्क्रिप्ट हमलावर-नियंत्रित डेटा को एक असुरक्षित तरीके से क्लाइंट-साइड SQL क्वेरी में शामिल करती है।
Sinks:
HTML5-storage manipulation
From: https://portswigger.net/web-security/dom-based/html5-storage-manipulation
HTML5-storage manipulation vulnerabilities तब उत्पन्न होती हैं जब एक स्क्रिप्ट हमलावर-नियंत्रित डेटा को वेब ब्राउज़र के HTML5 स्टोरेज में स्टोर करती है (localStorage
या sessionStorage
)। जबकि यह क्रिया स्वाभाविक रूप से एक सुरक्षा कमजोरी नहीं है, यह समस्या बन जाती है यदि एप्लिकेशन बाद में स्टोर किए गए डेटा को पढ़ता है और इसे असुरक्षित तरीके से प्रोसेस करता है। इससे एक हमलावर को स्टोरेज तंत्र का लाभ उठाकर अन्य DOM-आधारित हमले करने की अनुमति मिल सकती है, जैसे कि क्रॉस-साइट स्क्रिप्टिंग और जावास्क्रिप्ट इंजेक्शन।
Sinks:
XPath injection
From: https://portswigger.net/web-security/dom-based/client-side-xpath-injection
DOM-आधारित XPath-इंजेक्शन कमजोरियाँ तब होती हैं जब एक स्क्रिप्ट हमलावर-नियंत्रित डेटा को एक XPath क्वेरी में शामिल करती है।
Sinks:
Client-side JSON injection
From: https://portswigger.net/web-security/dom-based/client-side-json-injection
DOM-आधारित JSON-इंजेक्शन कमजोरियाँ तब होती हैं जब एक स्क्रिप्ट हमलावर-नियंत्रित डेटा को एक स्ट्रिंग में शामिल करती है जिसे JSON डेटा संरचना के रूप में पार्स किया जाता है और फिर एप्लिकेशन द्वारा संसाधित किया जाता है।
Sinks:
वेब-संदेश हेरफेर
From: https://portswigger.net/web-security/dom-based/web-message-manipulation
वेब-संदेश कमजोरियाँ तब उत्पन्न होती हैं जब एक स्क्रिप्ट हमलावर-नियंत्रित डेटा को एक वेब संदेश के रूप में दूसरे दस्तावेज़ में भेजती है जो ब्राउज़र के भीतर है। कमजोर वेब-संदेश हेरफेर का एक उदाहरण PortSwigger's Web Security Academy पर पाया जा सकता है।
Sinks:
postMessage()
विधि का उपयोग करके वेब संदेश भेजने से कमजोरियाँ उत्पन्न हो सकती हैं यदि संदेश प्राप्त करने के लिए इवेंट लिस्नर आने वाले डेटा को असुरक्षित तरीके से संभालता है।
DOM-डेटा हेरफेर
From: https://portswigger.net/web-security/dom-based/dom-data-manipulation
DOM-डेटा हेरफेर कमजोरियाँ तब उत्पन्न होती हैं जब एक स्क्रिप्ट हमलावर-नियंत्रित डेटा को DOM के भीतर एक फ़ील्ड में लिखती है जिसका उपयोग दृश्य UI या क्लाइंट-साइड लॉजिक में किया जाता है। इस कमजोरी का उपयोग एक हमलावर द्वारा एक URL बनाने के लिए किया जा सकता है जो, यदि किसी अन्य उपयोगकर्ता द्वारा देखा जाता है, तो क्लाइंट-साइड UI की उपस्थिति या व्यवहार को बदल सकता है।
Sinks:
Denial of Service
From: https://portswigger.net/web-security/dom-based/denial-of-service
DOM-आधारित सेवा से इनकार की कमजोरियाँ तब होती हैं जब एक स्क्रिप्ट हमलावर-नियंत्रित डेटा को एक समस्याग्रस्त प्लेटफ़ॉर्म API को असुरक्षित रूप से पास करती है। इसमें ऐसे APIs शामिल हैं, जो जब सक्रिय होते हैं, तो उपयोगकर्ता के कंप्यूटर को अत्यधिक मात्रा में CPU या डिस्क स्थान का उपभोग करने के लिए प्रेरित कर सकते हैं। ऐसी कमजोरियों के महत्वपूर्ण दुष्प्रभाव हो सकते हैं, जैसे कि ब्राउज़र वेबसाइट की कार्यक्षमता को सीमित कर देता है, डेटा को localStorage
में स्टोर करने के प्रयासों को अस्वीकार करके या व्यस्त स्क्रिप्ट को समाप्त करके।
Sinks:
Dom Clobbering
Dom ClobberingLast updated