
🕵️♂️ 🔎 🕸️ मुझे पता है कि आपने नीचे दिए गए Chrome एक्सटेंशन इंस्टॉल किए हैं।
[中文文档]
crx-scouter.js शांतिपूर्वक पता लगा सकता है कि हम कौन से Chrome एक्सटेंशन का उपयोग कर रहे हैं, और यह भी पता लगा सकता है कि ब्राउज़र के सामने का व्यक्ति एक शानदार हैकर है या उच्च-स्तरीय प्रोग्रामर 🐱। इसका उपयोग हनीपॉट, मानव-मशीन पहचान, विज्ञापन अवरोधन के प्रति-उपाय, एक्सटेंशन शोषण के लिए पूर्व-जाँच आदि के लिए किया जा सकता है।
crx-scouter.js का सिद्धांत 2017 में मेरे और evi1m0 द्वारा किए गए एक प्रयोग पर आधारित है। Google इस समस्या को हल करना चाहता है, लेकिन बहुत कम सफलता मिली है। विवरण सिद्धांत दस्तावेज़ में पाया जा सकता है।
डेमो इसमें: https://blog.neargle.com/crx-scouter/
एक निर्दिष्ट एक्सटेंशन का पता लगाएं
const { check_one } = await import('./scouter/scouter')
check_one("aapbdbdomjkkjkaonfhkkikfgjllcleb", console.log)
console.log का आउटपुट नीचे जैसा दिखता है:
{
"extid": "aapbdbdomjkkjkaonfhkkikfgjllcleb",
"url": "https://chrome.google.com/webstore/detail/google-translate/aapbdbdomjkkjkaonfhkkikfgjllcleb",
"name": "Google Translate"
}
बेशक, एक फंक्शन check_all_crx(callback) भी है जो फिंगरप्रिंट में सभी एक्सटेंशन का पता लगाने का समर्थन करता है।
✨ ऑनलाइन डिटेक्शन डेमो इसी फंक्शन पर आधारित है, और प्रभाव इस प्रकार है:

हम ऐसा क्यों कर सकते हैं?
Chrome एक्सटेंशन डेवलपर्स को पता होना चाहिए कि crx एक्सटेंशन वाले पैकेज में, manifest.json कॉन्फ़िगरेशन मेनिफ़ेस्ट फ़ाइल एक्सटेंशन की महत्वपूर्ण जानकारी प्रदान करती है। crx एक्सटेंशन वाली फ़ाइल को unzip के साथ सीधे डीकंप्रेस किया जा सकता है। नीचे manifest.json का उदाहरण:
{
"background": {
"scripts": [ "background.js" ]
},
"content_scripts": [ {
"all_frames": true,
"js": [ "content.js" ],
"matches": [ "http://*/*", "https://*/*", "ftp://*/*", "file:///*" ],
"run_at": "document_end"
} ],
"description": "Validates and makes JSON documents easy to read. Open source.",
"homepage_url": "https://github.com/teocci/JSONView-for-Chrome",
"icons": {
"128": "assets/images/jsonview128.png",
"16": "assets/images/jsonview16.png",
"48": "assets/images/jsonview48.png"
},
"key": "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEApA/pG/flimvWWAeUelHGaQ+IJajQm01JkfK0EYOJPyfsdTkHLwD3Aw16N3zuFkmwz09DcGDT+ehww7GSpW7RpbX5kHrovsqyHXtwt+a2Sp8bYFFdpRPj3+HG6366kNkwttDHMtsDkwuKaBtrQofQe5Ud9mKu9h1FDPwc2Qql9vNtvOqKFhV+EOD0vD2QlliB6sKCteu4nYBlFEkh6pYWRaXdAYSKYdE1SYIuQzE3dk11+KCaAC1T6GffL3sia8n5brVX7Qd+XtXyBzuM54w5e3STwK7uLMhLGDIzHoTcldzWUUflfwuI86VQIFBxPbvXJKqFFFno+ZHs/S+Ra2SPmQIDAQAB",
"manifest_version": 2,
"minimum_chrome_version": "21",
"name": "JSON Viewer",
"permissions": [ "clipboardWrite", "http://*/", "contextMenus", "https://*/", "ftp://*/" ],
"short_name": "JSONViewer",
"update_url": "https://clients2.google.com/service/update2/crx",
"version": "0.7.0",
"web_accessible_resources": [ "assets/options.html", "assets/csseditor.html", "assets/css/jsonview.css", "assets/css/jsonview-core.css", "assets/css/content_error.css", "assets/images/options.png", "assets/images/close_icon.gif", "assets/images/error.gif" ]
}
यदि उपयोगकर्ता को वेब पेज में एक्सटेंशन के संसाधनों तक पहुँचने की आवश्यकता है, तो उसे web_accessible_resources में LIST घोषित करना होगा, उदाहरण के लिए json-view लें:
"web_accessible_resources": [ "assets/options.html", "assets/csseditor.html", "assets/css/jsonview.css", "assets/css/jsonview-core.css", "assets/css/content_error.css", "assets/images/options.png", "assets/images/close_icon.gif", "assets/images/error.gif" ]
इन संसाधनों तक पहुँचने के लिए URL प्रारूप इस प्रकार है:
chrome-extension://' + extension id + /assets/options.html
मैंने पूरे Google Store में एक्सटेंशन एप्लिकेशन मेनिफ़ेस्ट प्राप्त करने के लिए एक क्रॉलर विकसित किया, इस प्रकार की श्रेणियाँ: 'ext/10-blogging', 'ext/15-by-google', 'ext/12-shopping', 'ext/11-web-development', 'ext/1-communication', 'ext/7-productivity', 'ext/38-search-tools', 'ext/13-sports', 'ext/22-accessibility', 'ext/6-news', 'ext/14-fun', 'ext/28-photos' और इसी तरह।
फिर, हम उन सभी एक्सटेंशन के फिंगरप्रिंट प्राप्त करते हैं जिनमें web_accessible_resources शामिल है।
पाँच साल बाद, Chrome ने अभी भी इस समस्या को दूर करने के लिए एक सुरक्षा सुविधा अपडेट की। अर्थात, web_accessible_resources एक matches व्हाइटलिस्ट सुरक्षा सुविधा जोड़ता है, और केवल व्हाइटलिस्ट के भीतर URL ही web_accessible_resources तक पहुँच सकते हैं, जिससे फ्रंट-एंड फिंगरप्रिंट पहचान से बचा जा सके।
लेकिन... इस वर्ष मैंने जो 110,000 एक्सटेंशन क्रॉल किए, उनमें से केवल 286 प्लगइन्स ने web_accessible_resources matches व्हाइटलिस्ट जोड़ा है; और उनमें से अधिकांश *://*/* जैसी बेकार व्हाइटलिस्ट और अन्य स्पष्ट रूप से बायपास करने योग्य व्हाइटलिस्ट से कॉन्फ़िगर किए गए हैं।
यह दर्शाता है कि एक सुरक्षा सुविधा कितनी शक्तिहीन है जिसका कोई उपयोग नहीं करता या गलत तरीके से करता है।