DOM Invader

Support HackTricks

DOM Invader

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

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

  1. DOM XSS परीक्षण के लिए एक वेबपृष्ठ पर नियंत्रित सिंक की पहचान, संदर्भ और स्वच्छता विवरण प्रदान करना।

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

  3. क्लाइंट-साइड प्रोटोटाइप प्रदूषण स्रोतों का पता लगाना और जोखिम भरे सिंक पर भेजे गए नियंत्रित गैजेट्स का स्कैन करना।

  4. DOM क्लॉबरिंग कमजोरियों की पहचान करना।

Enable It

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

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

Inject a Canary

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

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

Inject an empty Canary

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

Post Messages

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

  1. postMessage() के माध्यम से भेजे गए वेब संदेशों का लॉगिंग, जो Burp Proxy के HTTP अनुरोध/उत्तर इतिहास लॉगिंग के समान है।

  2. वेब संदेशों में संशोधन और पुनः जारी करना ताकि DOM XSS के लिए मैन्युअल रूप से परीक्षण किया जा सके, जो Burp Repeater के कार्य के समान है।

  3. DOM XSS के लिए वेब संदेशों का स्वचालित परिवर्तन और भेजना।

Message details

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

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

  • data: यह वह स्थान है जहाँ पेलोड भेजा जाता है। यदि इस डेटा का उपयोग नहीं किया जाता है, तो सिंक बेकार है।

  • source: यह मूल्यांकन करता है कि क्या स्रोत गुण, जो आमतौर पर एक iframe को संदर्भित करता है, उत्पत्ति के बजाय मान्य है। भले ही इसकी जांच की गई हो, यह सुनिश्चित नहीं करता कि मान्यता को बायपास नहीं किया जा सकता।

Reply a message

  1. Messages दृश्य से, किसी भी संदेश पर क्लिक करें ताकि संदेश विवरण संवाद खुल सके।

  2. आवश्यकतानुसार Data फ़ील्ड को संपादित करें।

  3. Send पर क्लिक करें।

Prototype Pollution

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

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

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

let b = {}
b.testproperty

Once you found a source you can scan for a gadget:

  1. एक नया टैब DOM Invader द्वारा खोला जाता है जब Scan for gadgets बटन, जो किसी भी पहचाने गए प्रोटोटाइप प्रदूषण स्रोत के बगल में पाया जाता है, पर क्लिक किया जाता है। उपयुक्त गैजेट्स के लिए स्कैनिंग शुरू होती है।

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

DOM clobbering

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

References

Support HackTricks

Last updated