
استغلال لإثبات المفهوم في RealPlayer يتيح تنزيل ملفات تعسفي واجتياز الدلائل، مما يؤدي إلى تنفيذ تعليمات برمجية عن بُعد عبر طريقة Import().
Real Player 'external::Import()': تنزيل ملفات تعسفي وثغرات اجتياز المسار تؤدي إلى تنفيذ كود عن بُعد
فيديو توضيحي: https://youtu.be/CONlijEgDLc
يستخدم Real Player وظائف إنترنت إكسبلورر من مايكروسوفت ويعرض الخصائص والطرق من خلال وسيلة خاصة خاصة بالتطبيق:
كائن 'external' ويعرض عدة طرق وخصائص مخصصة.
يتم التعامل مع الطريقة 'Import()' بطريقة غير آمنة فيما يتعلق بمعامل 'Copy to My Music'، مما يسمح بتنزيل أنواع ملفات تعسفية، وهو أمر قد يكون غير آمن حيث أنه ينبغي السماح فقط بأنواع الصوت/الصور/الفيديو بالتنزيل إلى قرص المستخدم. كما أنها لا تعقّم مسارات الملفات بشكل صحيح، مما يسمح بوضع ملفات تعسفية في مواقع تعسفية. وعلى الرغم من ظهور خطأ بسبب عدم قدرتها على عرض الملف الذي تم تنزيله، يظل الملف موجودًا حتى يغلق المستخدم مربع الحوار. إضافةً إلى ذلك، عند فتح نوافذ جديدة، يبحث Real Player عن مكتبة IE قديمة ومتقادمة (shdoclc.dll)، والتي يمكن إساءة استخدامها أيضًا لتشغيل كود تلقائيًا دون الحاجة إلى انتظار إعادة التشغيل (وهذا صحيح عند وضع الملف في مجلد 'startup').
يحتاج المهاجم إلى استضافة الملفات التي سيتم نسخها/تنزيلها في مشاركة SMB أو WebDav. يجب وضع الدليل 'appdata' في جذر المشاركة.
أيضًا، تساعد حالة DoS في 'external.PreloadURL()' على عدم حذف Real Player للملفات.
سيقوم إثبات المفهوم (PoC) بإفلات 'shdoclc.dll' (يحتوي على كود بسيط لتشغيل 'cmd.exe' في 'DllMain()' لأغراض توضيحية) إلى مجلد 'windowsapps' الخاص بالمستخدم، و'write.exe' إلى مجلد 'startup'، وبذلك يعمل بشكل شامل (على أي إصدار من ويندوز بدءًا من XP على الأقل وحتى 11).
تم الاختبار على الإصدارات RP 16.00.282، 16.0.3.51، Cloud 17.0.9.17، v.20.0.7.309