Skip to content
KitploitKITPLOIT
أدواتالمدونة
إرسال
أدواتالمدونة
إرسال

أدوات الاختراق واختبار الاختراق والأمن السيبراني لترسانتك الأمنية!

Kitploit هو دليل لأدوات الاختراق والأمن السيبراني واختبار الاختراق. اكتشف آخر تحديثات المشاريع للعثور على الثغرات وتحليل الأنظمة وأتمتة الاختبارات وتعزيز أمنك.

··الخلاصات·اتصال·الخصوصية·© 2026 Kitploit

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
CVE-2026-21627---Tassos-Novarain-Framework-plg_system_nrframework-Exploit---Joomla — استغلال Python لثغرة CVE-2026-21627، وهي إدراج ملف PHP تعسفي غير مصادق عليه في إطار Novarain الخاص بـ Joomla، مما يتيح رفع الملفات وحذفها وتنفيذ الأوامر عن بُعد (RCE). | Kitploit
أدوات/GitHubGitHub/yallasec/cve-2026-21627---tassos-novarain-framework-plg_system_nrframework-exploit---joomla
تحليل الثغرات الأمنيةالاستغلالاستغلال تطبيقات الويباختبار الاختراقالفريق الأحمرتطوير الحمولات
GitHubyallasec/cve-2026-21627---tassos-novarain-framework-plg_system_nrframework-exploit---joomla

CVE-2026-21627---Tassos-Novarain-Framework-plg_system_nrframework-Exploit---Joomla

استغلال Python لثغرة CVE-2026-21627، وهي إدراج ملف PHP تعسفي غير مصادق عليه في إطار Novarain الخاص بـ Joomla، مما يتيح رفع الملفات وحذفها وتنفيذ الأوامر عن بُعد (RCE).

عرض المستودع
منذ 6 أشهرلم تتم المراجعة بعد

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →
مشاركة

CVE-2026-21627

تضمين ملفات تعسفي غير مصادق عليه في إطار Novarain الخاص بـ Joomla (nrframework)

CVSS Joomla Python


نظرة عامة

ثغرة أمنية حرجة في إضافة Tassos/Novarain Framework (plg_system_nrframework) الخاصة بـ Joomla تسمح للمهاجمين غير المصادق عليهم بتضمين ملفات PHP تعسفية على الخادم، وإنشاء كائنات (classes) تعسفية، وسلسلة مع كائنات أدوات (gadget classes) مدمجة لتحقيق رفع ملفات تعسفي وحذف ملفات تعسفي — كل ذلك دون الحاجة إلى مصادقة.

معرف CVECVE-2026-21627
درجة CVSS9.5 (حرجة)
الإضافةplg_system_nrframework (Tassos Framework / Novarain Framework)
الإصدارات المتأثرة4.10.14 حتى 6.0.37
الإصدار المُصلَح6.0.38+
نظام إدارة المحتوىJoomla 3.x, 4.x, 5.x

إضافة nrframework مدمجة مع عدة إضافات Joomla شائعة من Tassos.gr بما في ذلك Convert Forms وEngage Box وGoogle Structured Data وغيرها.

تفاصيل الثغرة

طريقة ajaxTaskInclude() في ملف nrframework.php مُدرجة صراحةً في القائمة البيضاء للوصول من الواجهة الأمامية (غير الإدارية) عبر مصفوفة $non_admin_tasks. تقبل هذه الطريقة ثلاثة معاملات يتحكم بها المستخدم:

  • path — تستخدم مرشح الإدخال RAW (بدون أي تعقيم، مع إمكانية اجتياز المسار)
  • file — تستخدم مرشح الإدخال الافتراضي لـ Joomla
  • class — اسم الكائن (class) الذي سيتم إنشاؤه بعد التضمين

المسار المُدمج $path . $file . '.php' يُمرَّر مباشرةً إلى @include_once، مما يتيح تضمين ملفات PHP تعسفية. بعد التضمين، يتم إنشاء الكائن المحدد واستدعاء طريقته onAJAX() مع معاملات يتحكم بها المستخدم.

بدائيات الهجوم

البدائيةالأداة (Gadget)الخطورةالوصف
تضمين الملفاتajaxTaskInclude()حرجةتضمين أي ملف .php على الخادم
حذف الملفاتJFormFieldNRInlineFileUpload::onRemove()حرجةunlink() بدون التحقق من المسار — حذف أي ملف قابل للكتابة بواسطة خادم الويب
رفع الملفاتJFormFieldNRInlineFileUpload::onUpload()عاليةرفع ملفات نصية إلى أي دليل قابل للكتابة ويمكن الوصول إليه عبر الويب
كشف المساراستجابة الرفعمتوسطةتسريب مسار نظام الملفات الكامل في استجابة JSON

الاستخدام

root@kitploit:~
python3 cve_2026_21627.py --target <URL> --mode <MODE> [OPTIONS]

الأوضاع

الوضعالوصفالخطورة
verifyتأكيد وجود الثغرةآمن / للقراءة فقط
uploadرفع ملف إلى دليل مُتحكم بهمتوسطة
deleteحذف ملف تعسفي على الخادمتدميري
rceمحاولة سلسلة تنفيذ أوامر كاملة (رفع + تنفيذ)عالية
infoتضمين ملف PHP تعسفي للاستطلاعمتوسطة

أمثلة

التحقق من الثغرة:

root@kitploit:~
python3 cve_2026_21627.py --target https://example.com --mode verify

رفع ملف إثبات المفهوم:

root@kitploit:~
python3 cve_2026_21627.py --target https://example.com --mode upload --shell-type txt

رفع قشرة SSI (يتطلب Apache mod_include):

root@kitploit:~
python3 cve_2026_21627.py --target https://example.com --mode upload --shell-type shtml

محاولة سلسلة تنفيذ الأوامر:

root@kitploit:~
python3 cve_2026_21627.py --target https://example.com --mode rce --cmd "id"

حذف ملف (تدميري):

root@kitploit:~
python3 cve_2026_21627.py --target https://example.com --mode delete --file-path /var/www/html/test.txt

الخيارات

root@kitploit:~
--target, -t       عنوان URL الهدف (مطلوب)
--mode, -m         وضع الاستغلال: verify|upload|delete|rce|info (مطلوب)
--sef-prefix       بادئة عنوان SEF الخاص بـ Joomla (الافتراضي: /it/)
--delay            التأخير بين الطلبات بالثواني (الافتراضي: 2.5)
--proxy            وكيل HTTP (مثال: http://127.0.0.1:8080)
--no-ssl-verify    تعطيل التحقق من شهادة SSL

وضع الرفع:
  --shell-type     نوع الملف: shtml|csv|txt|html (الافتراضي: shtml)
  --upload-dir     دليل الرفع نسبةً إلى JPATH_ROOT (الافتراضي: images)
  --custom-content محتوى مخصص للملف المراد رفعه

وضع الحذف:
  --file-path      المسار الكامل على الخادم للملف المراد حذفه

وضع RCE:
  --cmd            الأمر المراد تنفيذه (الافتراضي: id)

وضع المعلومات:
  --php-path       مسار ملف PHP نسبةً إلى JPATH_SITE
  --php-file       اسم ملف PHP بدون امتداد .php
  --php-class      كائن PHP المراد إنشاؤه

كيف يعمل

root@kitploit:~
┌──────────────┐    ┌───────────────────┐    ┌─────────────────────┐
│   المهاجم    │───>│  onAjaxNrframework │───>│  ajaxTaskInclude()  │
│              │    │  (موجه AJAX)       │    │                     │
│ task=include │    │  include مُدرج في  │    │ path = إدخال RAW    │
│ path=...     │    │  $non_admin_tasks  │    │ @include_once $path │
│ file=...     │    │  (بدون مصادقة)     │    │ new $class()->onAJAX│
│ class=...    │    └───────────────────┘    └──────────┬──────────┘
└──────────────┘                                        │
                                                        v
                               ┌─────────────────────────────────────┐
                               │  JFormFieldNRInlineFileUpload       │
                               │  (كائن الأداة)                      │
                               │                                     │
                               │  onAjax() ──> onUpload()  [كتابة]   │
                               │           ──> onRemove()  [حذف]     │
                               └─────────────────────────────────────┘
  1. الجلسة وCSRF — يقوم Joomla بإنشاء الجلسات بشكل كسول (lazily). يُطلق الاستغلال إنشاء الجلسة عن طريق فحص نقطة نهاية AJAX، ثم يستخرج رمز CSRF من HTML الصفحة الرئيسية.
  2. تضمين الملفات — يتم استدعاء مهمة include مع path مُتحكم به (مرشح RAW = بدون تعقيم) يشير إلى ملف الأداة.
  3. تنفيذ الأداة — يوفر كائن JFormFieldNRInlineFileUpload المُضمَّن دالة onUpload() لكتابة الملفات وonRemove() لحذف الملفات، وكلاهما مع تحقق غير كافٍ من الإدخال.

المتطلبات

  • Python 3.7+
  • مكتبة requests
root@kitploit:~
pip install requests

الاكتشاف

راقب سجلات الوصول لمحاولات الاستغلال:

root@kitploit:~
# نمط سجل Apache/Nginx
grep -E "option=com_ajax.*plugin=nrframework.*task=include" access.log

قاعدة WAF — حظر الطلبات المطابقة لما يلي:

root@kitploit:~
option=com_ajax.*plugin=nrframework.*task=include.*path=

تدقيق ما بعد الاختراق:

  • تحقق من images/ والأدلة الأخرى القابلة للكتابة بحثًا عن ملفات غير متوقعة
  • تحقق من سلامة configuration.php و.htaccess
  • راجع سجلات أخطاء الخادم بحثًا عن تحذيرات @include_once

المعالجة

  1. قم بالتحديث إلى إصدار nrframework 6.0.38 أو أحدث فورًا
  2. يزيل التصحيح ajaxTaskInclude() بالكامل ويستبدلها بسجل معالجات صارم (AjaxHandlerRegistry)

الجدول الزمني

التاريخالحدث
2026-02اكتشاف الثغرة أثناء اختبار اختراق مُصرح به
2026-02إنشاء الاستغلال
2026-02الكشف العلني

إخلاء المسؤولية

تُقدَّم هذه الأداة لأغراض اختبار الأمان المُصرح به والتعليم فقط. استخدم هذا الاستغلال فقط ضد الأنظمة التي لديك إذن كتابي صريح لاختبارها. الوصول غير المصرح به إلى أنظمة الكمبيوتر غير قانوني. لا يتحمل المؤلف أي مسؤولية عن سوء الاستخدام.

المؤلف

Yallasec — yallasec.com

Arcangelo Saracino — @arkango

تنزيل الأداة