
RealPlayer G2 ActiveX कंट्रोल में रिमोट कोड एक्ज़ीक्यूशन (RCE) भेद्यता के लिए प्रूफ-ऑफ-कॉन्सेप्ट एक्सप्लॉइट, जो विशेष रूप से तैयार की गई प्लेलिस्ट फ़ाइलों के माध्यम से कोड निष्पादन प्राप्त करने के लिए javascript: और mhtml: URI का लाभ उठाता है।
Real Player v.20.0.8.310 G2 Control 'DoGoToURL()' दूरस्थ कोड निष्पादन भेद्यता
वीडियो डेमो: https://www.youtube.com/watch?v=9c9Q4VZQOUk
Real Player G2 Control घटक में एक दूरस्थ कोड निष्पादन भेद्यता है, क्योंकि यह तर्क के रूप में 'javascript:' URI को पारित करने की अनुमति देता है, जो आमतौर पर सुरक्षित नहीं है, क्योंकि कुछ परिदृश्यों में यह मनमाने डोमेन में स्क्रिप्ट कोड के इंजेक्शन की अनुमति दे सकता है (Universal Cross Site Scripting - uXSS) जिसका उपयोग संभावित रूप से अन्य चीजों के अलावा कुकीज़ चुराने के लिए किया जा सकता है।
'URL' पैरामीटर को 'javascript:' URI पर और 'target' पैरामीटर को एक 'iframe' html तत्व पर सेट करके, javascript कोड को एक स्थानीय त्रुटि पृष्ठ के संदर्भ में चलाना संभव है, जो उसी Control का उपयोग करके 'mhtml:http://%SERVER%/frame.htm' जैसे अमान्य URI पर नेविगेट करने के बाद प्रदर्शित होता है: जब MS IE रेंडरिंग इंजन द्वारा 'mhtml:' URI लागू किया जाता है, तो यह एक MHTML फ़ाइल की अपेक्षा करता है जिसका एक्सटेंशन MIME प्रकार "message/rfc822" पर सेट होता है, जो '.mht' फ़ाइलों के लिए मामला है; '.htm' फ़ाइलों का MIME 'text/html' पर सेट होता है और इस प्रकार IE दस्तावेज़ को लोड करना रद्द कर देगा और एक स्थानीय त्रुटि पृष्ठ प्रदर्शित करेगा (navigation cancelled)। स्थानीय त्रुटि पृष्ठ का पता 'res://ieframe.dll/navcancl.htm' है जो IE / Windows के 'My computer' सुरक्षा क्षेत्र से संबंधित है, जो मनमानी स्थानीय फ़ाइलों को पढ़ने और साथ ही डिज़ाइन द्वारा मनमाना कोड निष्पादन की अनुमति देता है।
नियंत्रण में 'javascript:' URI को प्रतिबंधित करने से समस्या कम हो जाती है।
PoC, उपयोगकर्ता के स्टार्टअप फ़ोल्डर में एक HTA फ़ाइल रोपने के लिए 'SYSMON' ActiveX नियंत्रण का उपयोग करता है, जिसे अगले लॉगऑन या बूट पर निष्पादित किया जाएगा। एक HTA फ़ाइल में उदाहरण के लिए एक एम्बेडेड EXE फ़ाइल को डाउनलोड करने या निकालने और उसे चलाने के लिए कोड हो सकता है। PoC मानता है कि Real Player की वर्तमान कार्यशील निर्देशिका उपयोगकर्ता की होम निर्देशिका की उपनिर्देशिका पर सेट है। उदाहरण के लिए वेब ब्राउज़र का उपयोग करके फ़ाइलें डाउनलोड करने पर, वे डिफ़ॉल्ट रूप से उपयोगकर्ता के 'Downloads' फ़ोल्डर में डाउनलोड होंगी, इसलिए स्टार्टअप फ़ोल्डर में HTA फ़ाइल रोपने में सक्षम होने के लिए हमें Windows उपयोगकर्ता नाम प्राप्त करने की आवश्यकता नहीं है। यह केवल सुविधा के लिए है, क्योंकि MS Web Browser ActiveX सहित विभिन्न तरीकों से यह जानकारी प्राप्त करना संभव है।
भेद्यता का शोषण Real Player प्लेलिस्ट फ़ाइल जैसे RAM फ़ाइलों को खोलकर किया जा सकता है।
समस्या को दोहराने के लिए, निम्नलिखित करें:
a) एक वेब सर्वर सेट करें b) वेब सर्वर रूट निर्देशिका पर, "RP_G2" फ़ोल्डर को उसमें निकालें। c) अभी निकाले गए "RP_G2" फ़ोल्डर को खोलें और फिर निम्नलिखित फ़ाइलों को टेक्स्ट एडिटर में खोलें: "poc.htm", "sm_rpx.js", "start.ram"। प्रत्येक फ़ाइल में %SERVER% स्ट्रिंग की हर घटना को वास्तविक वेब सर्वर के IP पते से बदलें। d) सुनिश्चित करें कि वेब सर्वर और उसमें शामिल सभी फ़ाइलें सुलभ हैं। MS IIS वेब सर्वर पर आपको एक नया एक्सटेंशन जोड़ने और उसे MIME प्रकार से संबद्ध करने की आवश्यकता हो सकती है, इसलिए .RAM एक्सटेंशन को MIME "audio/x-pn-realaudio" से संबद्ध करने के लिए ऐसा करें। e) क्लाइंट पक्ष (पीड़ित) पर, वेब ब्राउज़र खोलें और "start.ram" फ़ाइल डाउनलोड करें (या इसे उदाहरण के लिए 'rtsp:' जैसे URL प्रोटोकॉल का उपयोग करके एक्सेस किया जा सकता है) और इसे खोलें। कुछ सेकंड के बाद आपको उपयोगकर्ता के स्टार्टअप फ़ोल्डर में एक HTA फ़ाइल रोपी हुई दिखनी चाहिए।
नोट: स्टार्टअप फ़ोल्डर खोलने के लिए यह करें: "Run" मेनू खोलें और फिर टाइप करें:
shell:Startup
एंटर दबाएं और बस।
Real Player v.20.0.8.310 (और नीचे के संस्करण, कई वर्षों पीछे, जैसे 2014 या उसके आसपास) पर सफलतापूर्वक परीक्षण किया गया, जो Windows XP SP3, Vista, 7, 8.1, 10, 11 पर चल रहा है, सभी अपने सबसे हालिया पैच के साथ पूरी तरह से पैच किए गए हैं। (उदाहरण के लिए, Windows XP का सबसे हालिया अपडेट अप्रैल, 2014 में था... Win 7 का जनवरी 2020 में, और इसी तरह)