
MapPress Maps Pro < 2.53.9 - تنفيذ كود عن بعد (RCE) بسبب التحكم غير الصحيح في الوصول في إجراءات AJAX
MapPress Maps Pro < 2.53.9 - تنفيذ تعليمات برمجية عن بُعد (RCE) بسبب التحكم غير الصحيح في الوصول في إجراءات AJAX
يقوم الإصدار الاحترافي من هذه الإضافة بتسجيل عدة إجراءات AJAX تستدعي وظائف تفتقر إلى فحوص الصلاحيات وفحوص nonce، وتحديداً الوظائف 'ajax_get' و 'ajax_save' و 'ajax_delete' في ملف mappress_template.php. ونتيجة لذلك، يمكن لمهاجم مسجل الدخول بصلاحيات ضئيلة، مثل مشترك، تنفيذ الإجراءات التالية:
رفع ملف PHP قابل للتنفيذ (بما في ذلك الأبواب الخلفية المحتملة) وتحقيق تنفيذ تعليمات برمجية عن بُعد عن طريق إرسال طلب $_POST إلى wp-admin/admin-ajax.php مع تعيين المعامل 'action' على 'mapp_tpl_save'، والمعامل 'name' على الاسم الأساسي للملف الذي يريد إنشاءه، والمعامل 'content' على كود PHP قابل للتنفيذ. سيتم إنشاء هذا الملف في دليل القالب النشط حاليًا ويمكن تنفيذه منه.
حذف أي ملف PHP موجود على الموقع (مثل wp-config.php) عن طريق إرسال طلب $_POST إلى wp-admin/admin-ajax.php مع تعيين المعامل 'action' على 'mapp_tpl_delete'، والمعامل 'name' على الاسم الأساسي للملف المراد حذفه. على سبيل المثال، لحذف wp-config.php يمكن استخدام هجوم اجتياز الدليل، ويمكن تعيين المعامل 'name' على '../../../wp-config'. سيؤدي ذلك إلى إعادة تعيين الموقع، وعندها يمكن للمهاجم السيطرة الكاملة على الموقع.
عرض محتويات أي ملف PHP موجود على الموقع (مثل wp-config.php) عن طريق إرسال طلب $_GET إلى wp-admin/admin-ajax.php مع تعيين المعامل 'action' على 'mapp_tpl_get'، والمعامل 'name' للملف المراد كشفه. على سبيل المثال، لعرض محتويات wp-config.php يمكن استخدام هجوم اجتياز الدليل، ويمكن تعيين المعامل 'name' على '../../../../wp-config'.
python3 exploit.py --url http://wordpress.lan --username user --password useruser1 --code "<?php phpinfo(); ?>"