Electron contextIsolation RCE via preload code
उदाहरण 1
यह कोड http(s) लिंक्स को डिफ़ॉल्ट ब्राउज़र के साथ खोलता है:
कुछ इस प्रकार file:///C:/Windows/systemd32/calc.exe
का उपयोग करके एक कैल्क को निष्पादित किया जा सकता है, SAFE_PROTOCOLS.indexOf
इसे रोक रहा है।
इसलिए, एक हमलावर XSS या अनुमानित पृष्ठ नेविगेशन के माध्यम से इस JS कोड को इंजेक्ट कर सकता है:
जैसा कि SAFE_PROTOCOLS.indexOf
कॉल हमेशा 1337 लौटाएगा, हमलवार सुरक्षा को छलकर संरक्षण को उमार सकता है और कैल्क को निष्पादित कर सकता है। अंतिम उत्पीड़न:
अनुमतियों के लिए पूछने वाले प्रॉम्प्ट के बिना कार्यक्रमों को निष्पादित करने के अन्य तरीकों के लिए मूल स्लाइड जांचें।
एक और तरीका कहा जा रहा है कोड लोड और निष्पादित करने के लिए, जैसे कि file://127.0.0.1/electron/rce.jar
की तरह कुछ एक्सेस करना।
उदाहरण 2: Discord ऍप RCE
उदाहरण https://mksben.l0.cm/2020/10/discord-desktop-rce.html?m=1 से।
प्रीलोड स्क्रिप्ट्स की जांच करते समय, मुझे पाया कि Discord फ़ंक्शन को उजागर करता है, जिससे कुछ अनुमति प्राप्त मॉड्यूल DiscordNative.nativeModules.requireModule('MODULE-NAME')
के माध्यम से वेब पृष्ठ में कॉल किया जा सकता है। यहाँ, मैं उन मॉड्यूल का उपयोग नहीं कर सका जो RCE के लिए सीधे उपयोग किए जा सकते हैं, जैसे child_process मॉड्यूल, लेकिन मैंने एक कोड खोजा जहाँ RCE को अच्छी तरह से प्राप्त किया जा सकता है जिसमें जावास्क्रिप्ट बिल्ट-इन विधियों को ओवरराइड किया जा सकता है और उजागर मॉड्यूल के निष्पादन में हस्तक्षेप किया जा सकता है।
निम्नलिखित PoC है। मैंने पुष्टि की कि calc एप्लिकेशन पॉप अप होता है जब मैं getGPUDriverVersions
फ़ंक्शन को कॉल करता हूँ जो "discord_utils" नामक मॉड्यूल में परिभाषित है, जबकि RegExp.prototype.test
और Array.prototype.join
को ओवरराइड करते समय devTools से।
getGPUDriverVersions
फ़ंक्शन प्रोग्राम को निम्नलिखित तरीके से "execa" लाइब्रेरी का उपयोग करके निष्पादित करने का प्रयास करता है:
सामान्यत: execa "nvidia-smi.exe" को निष्चित किए गए nvidiaSmiPath
चर में निष्पादित करने की कोशिश करता है, हालांकि, ओवरराइड किए गए RegExp.prototype.test
और Array.prototype.join
के कारण, यह तर्क "calc" में बदल जाता है _execa_** की आंतरिक प्रसंस्करण में**.
विशेष रूप से, तर्क को निम्नलिखित दो हिस्सों को बदलकर बदल दिया जाता है।
Last updated