
استغلال لإثبات المفهوم لتنفيذ تعليمات برمجية عشوائية عبر مخطط URI الخاص بـ DCP في Real Player، من خلال زرع الملفات وتجاوز عنصر تحكم ActiveX.
Real Player 'DCP://' URI Remote Arbitrary Code Execution Vulnerability
عرض فيديو: https://youtu.be/AMODp3iTnqY
مخطط URI 'DCP://' هو بروتوكول داخلي يستخدمه Real Player لاسترداد عناوين URL لعرضها في تبويب المتصفح الخاص بالمشغل. وهو اختصار لـ 'Data Cache Protocol'. يقوم باسترداد الملفات من '%appdata%\real\realplayer'. هذه الملفات هي ملفات '.ini' بسيطة تحتوي على الكود التالي:
يبدو أن السمة 'offlineurl' يتم تجاهلها، ومع ذلك من الممكن تمرير عناوين URL عشوائية، بما في ذلك عناوين URL لملفات محلية و URIs غير آمنة من نوع 'Javascript:'.
مثال: dcp://custom.ini
قد يؤدي هذا إلى إنشاء حالة cross-site scripting شاملة (uXSS).
يستخدم Real Player وظائف Microsoft Internet Explorer ويعرض خصائص وطرقًا من خلال وسيلة خاصة خاصة بالتطبيق:
كائن 'external' يعرض عدة طرق وخصائص مخصصة.
ليس من الممكن استرداد ملفات بعيدة، ولكن من الممكن استخدام الدلائل الأصلية (..) لاسترداد الملفات. ولتحقيق ذلك يمكننا استخدام طريقة 'external::OpenURLInPlayerBrowser()'
من خلال دمج هذه المشكلة مع مشكلة زرع ملفات باستخدام طريقة 'external::RecordClip()'، نتمكن من زرع ملفات '.ini' صالحة (على الرغم من أنها بدون امتداد) في موقع يمكن توقعه:
'Videos\RealPlayer Downloads'.
من خلال زرع ملفين، ثم الإشارة إليهما عبر URI 'DCP://'، من الممكن الإشارة إلى عنوان URL يخص نطاقًا عشوائيًا أو "منطقة أمان" (مناطق أمان Windows) ثم حقن كود جافاسكريبت مخصص.
يستخدم الإثبات المفاهيمي (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).