BrowExt - ClickJacking
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Basic Information
यह पृष्ठ एक ब्राउज़र एक्सटेंशन में ClickJacking सुरक्षा दोष का दुरुपयोग करने जा रहा है। यदि आप नहीं जानते कि ClickJacking क्या है, तो देखें:
Clickjackingएक्सटेंशन में फ़ाइल 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 Example
एक्सटेंशन PrivacyBadger में, skin/
निर्देशिका को web_accessible_resources
के रूप में घोषित करने से संबंधित एक सुरक्षा दोष की पहचान की गई थी (मूल ब्लॉग पोस्ट देखें):
यह कॉन्फ़िगरेशन एक संभावित सुरक्षा समस्या की ओर ले गया। विशेष रूप से, skin/popup.html
फ़ाइल, जो ब्राउज़र में PrivacyBadger आइकन के साथ इंटरैक्शन पर रेंडर होती है, को एक iframe
के भीतर एम्बेड किया जा सकता है। इस एम्बेडिंग का उपयोग उपयोगकर्ताओं को "Disable PrivacyBadger for this Website" पर अनजाने में क्लिक करने के लिए धोखा देने के लिए किया जा सकता है। ऐसा करने से उपयोगकर्ता की गोपनीयता से समझौता होगा क्योंकि PrivacyBadger सुरक्षा को निष्क्रिय कर दिया जाएगा और संभावित रूप से उपयोगकर्ता को बढ़ी हुई ट्रैकिंग का सामना करना पड़ेगा। इस एक्सप्लॉइट का एक दृश्य प्रदर्शन https://blog.lizzie.io/clickjacking-privacy-badger/badger-fade.webm पर प्रदान किए गए ClickJacking वीडियो उदाहरण में देखा जा सकता है।
इस कमजोरियों को संबोधित करने के लिए, एक सीधा समाधान लागू किया गया: web_accessible_resources
की सूची से /skin/*
को हटाना। इस परिवर्तन ने यह सुनिश्चित करके जोखिम को प्रभावी ढंग से कम कर दिया कि skin/
निर्देशिका की सामग्री को वेब-एक्सेसिबल संसाधनों के माध्यम से एक्सेस या परिवर्तित नहीं किया जा सकता।
फिक्स आसान था: web_accessible_resources
से /skin/*
हटाएं।
PoC
Metamask Example
A blog post about a ClickJacking in metamask can be found here. इस मामले में, Metamask ने इस कमजोरी को ठीक किया जब यह जांचा कि इसे एक्सेस करने के लिए उपयोग किया गया प्रोटोकॉल https:
या http:
था (उदाहरण के लिए chrome:
नहीं):
Metamask एक्सटेंशन में एक और ClickJacking ठीक किया गया था कि उपयोगकर्ता Click to whitelist कर सकते थे जब एक पृष्ठ को फ़िशिंग होने का संदेह था क्योंकि “web_accessible_resources”: [“inpage.js”, “phishing.html”]
। चूंकि वह पृष्ठ Clickjacking के प्रति संवेदनशील था, एक हमलावर इसका दुरुपयोग कर सकता था, कुछ सामान्य दिखाकर पीड़ित को इसे व्हाइटलिस्ट करने के लिए क्लिक करने के लिए मजबूर कर सकता था, और फिर फ़िशिंग पृष्ठ पर वापस जा सकता था जिसे व्हाइटलिस्ट किया जाएगा।
Steam Inventory Helper Example
Check the following page to check how a XSS in a browser extension was chained with a ClickJacking vulnerability:
BrowExt - XSS ExampleReferences
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Last updated