DOM Invader

Reading time: 6 minutes

tip

AWS हैकिंग सीखें और अभ्यास करें:HackTricks Training AWS Red Team Expert (ARTE)
GCP हैकिंग सीखें और अभ्यास करें: HackTricks Training GCP Red Team Expert (GRTE)

HackTricks का समर्थन करें

DOM Invader

DOM Invader एक ब्राउज़र टूल है जो Burp के अंतर्निहित ब्राउज़र में स्थापित है। यह विभिन्न स्रोतों और सिंक का उपयोग करके DOM XSS कमजोरियों का पता लगाने में मदद करता है, जिसमें वेब संदेश और प्रोटोटाइप प्रदूषण शामिल हैं। यह टूल एक एक्सटेंशन के रूप में पूर्व-स्थापित है।

DOM Invader ब्राउज़र के DevTools पैनल में एक टैब को एकीकृत करता है जो निम्नलिखित सक्षम करता है:

  1. DOM XSS परीक्षण के लिए एक वेबपेज पर नियंत्रित सिंक की पहचान, संदर्भ और स्वच्छता विवरण प्रदान करना।
  2. postMessage() विधि के माध्यम से भेजे गए वेब संदेशों का लॉगिंग, संपादन और पुनः भेजना DOM XSS परीक्षण के लिए। DOM Invader विशेष रूप से तैयार किए गए वेब संदेशों का उपयोग करके कमजोरियों का स्वचालित रूप से पता लगा सकता है।
  3. क्लाइंट-साइड प्रोटोटाइप प्रदूषण स्रोतों का पता लगाना और जोखिम भरे सिंक पर भेजे गए नियंत्रित गैजेट्स का स्कैन करना।
  4. DOM क्लॉबरिंग कमजोरियों की पहचान करना।

इसे सक्षम करें

Burp के अंतर्निहित ब्राउज़र में Burp एक्सटेंशन पर जाएं और इसे सक्षम करें:

अब पृष्ठ को रिफ्रेश करें और Dev Tools में आपको DOM Invader टैब मिलेगा:

एक कैनरी इंजेक्ट करें

पिछली छवि में आप देख सकते हैं कि एक यादृच्छिक अक्षरों का समूह, जो कैनरी है। आपको अब इसे वेब के विभिन्न भागों (पैरामीटर, फॉर्म, यूआरएल...) में इंजेक्ट करना शुरू करना चाहिए और हर बार इसे खोजें। DOM Invader यह जांचेगा कि कैनरी किसी दिलचस्प सिंक में समाप्त हुआ है जिसे शोषित किया जा सकता है।

इसके अलावा, विकल्प Inject URL params और Inject forms स्वचालित रूप से एक नया टैब खोलेगा कैनरी को हर URL पैरामीटर और फॉर्म में इंजेक्ट करते हुए जो इसे मिलते हैं।

एक खाली कैनरी इंजेक्ट करें

यदि आप केवल संभावित सिंक खोजने के लिए चाहते हैं जो पृष्ठ में हो सकते हैं, भले ही वे शोषण योग्य न हों, तो आप खाली कैनरी के लिए खोज कर सकते हैं।

पोस्ट संदेश

DOM Invader वेब संदेशों का उपयोग करके DOM XSS के लिए परीक्षण की अनुमति देता है जिसमें निम्नलिखित विशेषताएँ हैं:

  1. postMessage() के माध्यम से भेजे गए वेब संदेशों का लॉगिंग, Burp Proxy के HTTP अनुरोध/उत्तर इतिहास लॉगिंग के समान।
  2. वेब संदेशों में संशोधन और पुनः जारी करना DOM XSS के लिए मैन्युअल परीक्षण करने के लिए, Burp Repeater के कार्य के समान।
  3. DOM XSS के लिए वेब संदेशों का स्वचालित परिवर्तन और भेजना।

संदेश विवरण

प्रत्येक संदेश के बारे में विस्तृत जानकारी देखने के लिए उस पर क्लिक करें, जिसमें यह शामिल है कि क्या क्लाइंट-साइड JavaScript संदेश के origin, data, या source गुणों तक पहुँचता है।

  • origin : यदि संदेश की उत्पत्ति जानकारी की जांच नहीं की गई है, तो आप किसी भी बाहरी डोमेन से इवेंट हैंडलर को क्रॉस-उत्पत्ति संदेश भेजने में सक्षम हो सकते हैं। लेकिन यदि इसकी जांच की गई है, तो भी यह असुरक्षित हो सकता है।
  • data: यह वह स्थान है जहाँ पेलोड भेजा जाता है। यदि इस डेटा का उपयोग नहीं किया जाता है, तो सिंक बेकार है।
  • source: यह मूल्यांकन करता है कि क्या स्रोत गुण, जो आमतौर पर एक iframe को संदर्भित करता है, उत्पत्ति के बजाय मान्य है। भले ही इसकी जांच की गई हो, यह सुनिश्चित नहीं करता कि मान्यता को बायपास नहीं किया जा सकता।

एक संदेश का उत्तर दें

  1. Messages दृश्य से, किसी भी संदेश पर क्लिक करें ताकि संदेश विवरण संवाद खुल सके।
  2. आवश्यकतानुसार Data फ़ील्ड को संपादित करें।
  3. Send पर क्लिक करें।

प्रोटोटाइप प्रदूषण

DOM Invader प्रोटोटाइप प्रदूषण कमजोरियों के लिए भी खोज सकता है। पहले, आपको इसे सक्षम करना होगा:

फिर, यह स्रोतों की खोज करेगा जो आपको Object.prototype में मनमाने गुण जोड़ने की अनुमति देते हैं।

यदि कुछ पाया जाता है, तो Test बटन दिखाई देगा ताकि पाए गए स्रोत का परीक्षण किया जा सके। उस पर क्लिक करें, एक नया टैब दिखाई देगा, कंसोल में एक ऑब्जेक्ट बनाएं और जांचें कि क्या testproperty मौजूद है:

javascript
let b = {}
b.testproperty

एक बार जब आप एक स्रोत ढूंढ लेते हैं, तो आप गैजेट के लिए स्कैन कर सकते हैं:

  1. जब गैजेट के लिए स्कैन बटन, जो किसी पहचाने गए प्रोटोटाइप प्रदूषण स्रोत के बगल में DOM दृश्य में पाया जा सकता है, पर क्लिक किया जाता है, तो DOM Invader द्वारा एक नया टैब खोला जाता है। फिर उपयुक्त गैजेट्स के लिए स्कैन शुरू होता है।
  2. इस बीच, उसी टैब में, DevTools पैनल में DOM Invader टैब खोला जाना चाहिए। स्कैन पूरा होने के बाद, पहचाने गए गैजेट्स के माध्यम से पहुंच योग्य किसी भी सिंक को DOM दृश्य में प्रदर्शित किया जाता है। उदाहरण के लिए, एक गैजेट प्रॉपर्टी जिसका नाम html है, innerHTML सिंक को पास किया जा रहा है, नीचे दिए गए उदाहरण में दिखाया गया है।

DOM क्लॉबरिंग

पिछली छवि में यह देखा जा सकता है कि DOM क्लॉबरिंग स्कैन को चालू किया जा सकता है। एक बार ऐसा करने पर, DOM Invader DOM क्लॉबरिंग कमजोरियों की खोज शुरू करेगा।

संदर्भ

tip

AWS हैकिंग सीखें और अभ्यास करें:HackTricks Training AWS Red Team Expert (ARTE)
GCP हैकिंग सीखें और अभ्यास करें: HackTricks Training GCP Red Team Expert (GRTE)

HackTricks का समर्थन करें