BrowExt - ClickJacking
मूलभूत जानकारी
इस पृष्ठ में एक ब्राउज़र एक्सटेंशन में ClickJacking वंलरेबिलिटी का दुरुपयोग किया जाएगा। अगर आप नहीं जानते कि ClickJacking क्या है तो देखें:
pageClickjackingएक्सटेंशन में फ़ाइल manifest.json
शामिल होती है और उस JSON फ़ाइल में एक फ़ील्ड web_accessible_resources
होता है। यहां Chrome डॉक्स क्या कहते हैं:
इन संसाधनों को फिर एक वेबपेज में URL
chrome-extension://[PACKAGE ID]/[PATH]
के माध्यम से उपलब्ध किया जा सकता है, जोextension.getURL method
के साथ उत्पन्न किया जा सकता है। अनुमति प्राप्त संसाधनों को उचित CORS हेडर्स के साथ सेवा किया जाता है, इसलिए वे XHR जैसे मेकेनिज़म के माध्यम से उपलब्ध होते हैं।1
ब्राउज़र एक्सटेंशन में web_accessible_resources
केवल वेब के माध्यम से ही पहुंचने योग्य नहीं होते हैं; वे एक्सटेंशन की निजी विशेषताओं के साथ भी काम करते हैं। इसका मतलब है कि उन्हें निम्नलिखित क्षमताएँ होती हैं:
एक्सटेंशन की स्थिति बदलें
अतिरिक्त संसाधन लोड करें
ब्राउज़र के साथ एक सीमित स्तर तक बातचीत करें
हालांकि, यह सुविधा एक सुरक्षा जोखिम प्रस्तुत करती है। अगर web_accessible_resources
में कोई महत्वपूर्ण कार्यक्षमता है, तो एक हमलावर इस संसाधन को एक बाह्य वेब पेज में समाहित कर सकता है। इस पृष्ठ को अनजान उपयोगकर्ता जो इस प्रासंगिक संसाधन को अनजाने में सक्रिय कर सकते हैं। इस प्रक्रिया के परिणामस्वरूप, एक्सटेंशन के संसाधनों की अनुमतियों और क्षमताओं पर निर्भर करता है।
PrivacyBadger उदाहरण
एक्सटेंशन PrivacyBadger में, skin/
निर्देशिका को web_accessible_resources
के रूप में घोषित किया गया था इस प्रकार (मूल ब्लॉग पोस्ट देखें):
यह कॉन्फ़िगरेशन एक संभावित सुरक्षा समस्या की ओर ले गई। विशेष रूप से, skin/popup.html
फ़ाइल, जो ब्राउज़र में PrivacyBadger आइकन के साथ इंटरैक्शन के बाद प्रदर्शित होती है, एक iframe
के भीतर समाहित किया जा सकता था। इस समाहित का उपयोग उपयोगकर्ताओं को धोखा देने के लिए किया जा सकता था ताकि वे "इस वेबसाइट के लिए PrivacyBadger को अक्षम करें" पर अनजाने में क्लिक करें। ऐसा करने से उपयोगकर्ता की गोपनीयता को खतरे में डाल दिया जा सकता था क्योंकि PrivacyBadger सुरक्षा को अक्षम कर देने से उपयोगकर्ता को अधिक ट्रैकिंग का सामना करना पड़ सकता था। इस एक्शन का उपयोग करके इस दोष को दूर करने के लिए एक सीधा समाधान लागू किया गया था: web_accessible_resources
की सूची से /skin/*
को हटाना। यह परिवर्तन खतरे को सफलतापूर्वक कम कर दिया गया था क्योंकि यह सुनिश्चित करता था कि skin/
निर्देशिका की सामग्री को वेब-सुलभ संसाधनों के माध्यम से उपयोग किया या परिवर्तित नहीं किया जा सकता था।
सुधार आसान था: web_accessible_resources
से /skin/*
हटाएं.
PoC
Metamask उदाहरण
Metamask में ClickJacking के बारे में एक ब्लॉग पोस्ट यहाँ पाई जा सकती है. इस मामले में, Metamask ने यह सुरक्षा दोष ठीक कर दिया था जिसमें यह जांचा गया था कि उसे एक्सेस करने के लिए उपयोग किया गया प्रोटोकॉल https:
या http:
था (उदाहरण के लिए chrome:
नहीं):
Metamask एक्सटेंशन में एक और ClickJacking दोष ठीक किया गया था जब पेज संदेहास्पद था कि यह फिशिंग हो सकता है क्योंकि “web_accessible_resources”: [“inpage.js”, “phishing.html”]
. उस पेज पर Clickjacking के लिए वंशज इसका दुरुपयोग कर सकते थे जिससे कुछ सामान्य दिखाकर पीड़ित को इसे व्हाइटलिस्ट करने के लिए क्लिक करने में ध्यान नहीं जाता, और फिर फिशिंग पेज पर वापस जाते जो व्हाइटलिस्ट हो जाएगा।
Steam Inventory Helper उदाहरण
एक XSS कैसे एक ब्राउज़र एक्सटेंशन में ClickJacking दोष के साथ जोड़ा गया था, इसे जांचने के लिए निम्नलिखित पेज की जाँच करें:
pageBrowExt - XSS Exampleसंदर्भ
Last updated