
CVE-2018-11686 - FlexPaper PHP Publish Service RCE <= 2.3.6
CVE-2018-11686 - ثغرة تنفيذ الأوامر عن بُعد في FlexPaper PHP Publish Service <= 2.3.6

اكتُشفت بواسطة Red Timmy Security
التحليل الفني:
النشرة الأمنية:
الملف change_config.php في FlexPaper (PHP) لا يتحقق مما إذا كان المسؤول مصادقًا عليه بشكل صحيح، مما يسمح للمهاجم بحذف ملفات عشوائية على الخادم:

unlink في PHPيمكن للمهاجم صياغة طلب مثل هذا وحذف الملفات في المجلد الذي يختاره:
POST /flexpaper/php/change_config.php HTTP/1.1
Host: 127.0.0.1:8888
[...]
SAVE_CONFIG=1&SWF_Directory=config/
بهذا الطلب، يحذف المهاجم جميع الملفات في مجلد config.
بما أن جميع الملفات في مجلد config/ قد حُذفت، فإن FlexPaper سيعتقد أن التطبيق لم تتم تهيئته من قبل:

لذلك يستطيع المهاجم إعداد FlexPaper مرة أخرى. ولكن لماذا؟
داخل setup.php توجد دالة تسمى pdf2swfEnabled تستخدم أمر exec في PHP مع معلمة يمررها المستخدم عبر POST. وبما أن هذه هي مرحلة التهيئة (الخطوة 2.) لـ FlexPaper، فلا توجد أي مصادقة.

يمكن للمهاجم صياغة حمولة مثل: ?step=4&PDF2SWF_PATH=id; مما ينتج عنه exec(id; --version 2>&1).
يمكن للمهاجم إعادة توجيه مخرجات الأمر إلى ملف داخل مجلد config ثم إرسال طلب GET لقراءة المخرجات:

تمت إضافة التحقق من المصادقة في بداية الملف change_config.php
