
Real Player के DCP URI स्कीम के माध्यम से मनमाना कोड निष्पादन हेतु प्रूफ-ऑफ-कॉन्सेप्ट एक्सप्लॉइट, जो फ़ाइल प्लांटिंग और ActiveX नियंत्रण बाईपास का लाभ उठाता है।
Real Player 'DCP://' URI रिमोट आर्बिट्ररी कोड एक्ज़ीक्यूशन भेद्यता
वीडियो डेमो: https://youtu.be/AMODp3iTnqY
'DCP://' URI स्कीम Real Player द्वारा उपयोग किया जाने वाला एक आंतरिक प्रोटोकॉल है, जिसका उपयोग Player ब्राउज़र टैब में प्रदर्शित करने के लिए URL प्राप्त करने हेतु किया जाता है। इसका अर्थ 'Data Cache Protocol' है। यह '%appdata%\real\realplayer' से फ़ाइलें प्राप्त करेगा। ये फ़ाइलें निम्नलिखित कोड वाली सरल '.ini' फ़ाइलें हैं:
'offlineurl' विशेषता को अनदेखा किया जाता प्रतीत होता है, हालाँकि मनमाने URL पास करना संभव है, जिसमें स्थानीय फ़ाइलों के URL और असुरक्षित 'Javascript:' URI शामिल हैं।
उदाहरण: dcp://custom.ini
यह संभावित रूप से एक यूनिवर्सल क्रॉस साइट स्क्रिप्टिंग स्थिति (uXSS) उत्पन्न करता है।
Real Player Microsoft Internet Explorer कार्यक्षमता का उपयोग करता है और एक विशेष माध्यम से प्रॉपर्टीज़ और मेथड्स को उजागर करता है जो एप्लिकेशन-विशिष्ट है:
'external' ऑब्जेक्ट और यह कई कस्टम मेथड्स और प्रॉपर्टीज़ को उजागर करता है।
रिमोट फ़ाइलें प्राप्त करना संभव नहीं है, लेकिन फ़ाइलों को प्राप्त करने के लिए पैरेंट डायरेक्टरीज़ (..) का उपयोग करना संभव है। इसके लिए हम 'external::OpenURLInPlayerBrowser()' मेथड का उपयोग कर सकते हैं
इस समस्या को 'external::RecordClip()' मेथड के साथ फ़ाइल प्लांटिंग समस्या के साथ जोड़कर, हम एक अनुमानित स्थान पर वैध '.ini' फ़ाइलें (हालाँकि वे एक्सटेंशनरहित हैं) स्थापित करने में सक्षम हैं:
'Videos\RealPlayer Downloads'.
2 फ़ाइलें स्थापित करके, और उन्हें आगे 'DCP://' URI के माध्यम से संदर्भित करके, किसी मनमाने डोमेन या "सुरक्षा क्षेत्र" (Windows Security zones) से संबंधित URL को संदर्भित करना संभव है और फिर कस्टम जावास्क्रिप्ट कोड इंजेक्ट करना संभव है।
PoC उस कोड का उपयोग करता है जो असुरक्षित ActiveX नियंत्रणों के लिए संकेत को "विफल" करने और MSHTA को दूसरी फ़ाइल की ओर इंगित करके चलाने का कारण बनता है, जिसमें 'cmd.exe' चलाने के लिए कोड होता है। इसमें उदाहरण के लिए एक एम्बेडेड EXE हो सकता है
इस समस्या को पुनः उत्पन्न करने के लिए, आपको बस फ़ाइलों को संपादित करना होगा और '%server%' को वास्तविक सर्वर होस्ट नाम या IP से बदलना होगा। साथ ही '%username%' को लक्षित वास्तविक Windows उपयोगकर्ता नाम से 'dcp1.txt' और 'rp_dcp.htm' फ़ाइलों में बदलें।
नोट: Windows उपयोगकर्ता नाम SMB सर्वर या WebDAV सर्वर पर अनुरोधों के माध्यम से प्राप्त किया जा सकता है।
प्रभावित संस्करण: 16.0.3.51, Cloud 17.0.9.17, v.20.0.7.309 किसी भी Windows संस्करण पर (XP से 11 तक)