
أداة Python CLI تستغل CVE-2026-48907 في Joomla JCE عبر رفع profile-import، وتتحقق من مسارات shell، وتفتح قناة أوامر تفاعلية على الأهداف المصرّح بها.
E.L.V — محمّل الاستغلال وبرنامج الثغرات
أداة بحث في الأمن السيبراني لتقييم الثغرات المصرّح به.
إطار E.L.V لأبحاث وتقييم CVE هو أداة سطر أوامر مبنية على Python مخصصة لأبحاث الأمن المُتحكَّم بها وتقييم الثغرات المصرّح به.
يتضمن التنفيذ المُقدَّم وظائف من أجل:
يحدد الكود المصدري الحالي هدف بحثه على أنه:
CVE-2026-48907 Joomla! JCE Extension < 2.9.99.5 Unauthenticated RCE
هذا الادعاء الخاص بـ CVE/المنتج هو بيانات وصفية مُقدَّمة من الكود المصدري ولم يتم التحقق منها بشكل مستقل بواسطة هذا الملف التعريفي. قبل نشر أي ادعاء أمني، تحقق من المعرّف والإصدارات المتأثرة والإشعار والمكوّن المتأثر ومعلومات المعالجة مقابل مصدر موثوق للمورّد/CVE.
يتفاعل هذا المشروع مع تطبيقات ويب بعيدة، ويتضمن التنفيذ المُقدَّم وظائف تهدف إلى رفع حمولة مخصصة من جانب الخادم والتواصل مع أمر تم رفعه.
استخدمه فقط ضد الأنظمة التي لديك تصريح صريح بها.
لا تستخدم هذا المشروع من أجل:
لإجراء مختبر آمن، استخدم بيئة VM/حاوية محلية معزولة أو هدف تدريب مصمم ليكون عرضة للثغرات عن قصد.
| الحقل | القيمة |
|---|---|
| المشروع | إطار E.L.V لأبحاث وتقييم CVE |
| المؤلف / المحرك | HxN / E.L.V |
| الإصدار | 1.0.0 |
| اللغة | Python |
| المنصة | أنظمة *nix / شبيهة بـ Unix |
| الترخيص | GNU GPL v3 |
| الواجهة | سطر الأوامر |
| عميل HTTP | requests |
| التزامن | ThreadPoolExecutor |
| الغرض الأساسي | أبحاث وتقييم أمني مصرّح به |
يحتوي الكود المصدري المُقدَّم elv-cve.py على المكونات الرئيسية التالية.
يقرأ السكربت ملفًا محليًا مُقدَّمًا عبر خيار --shell.
يصف الكود المصدري هذا كملف أمر/رافع مخصص ويتوقف عند تعذّر قراءة الملف المحدد.
يدعم البرنامج وضعين متبادلين للأهداف:
لكل هدف، ينفذ السكربت طلب GET مقابل جذر الهدف ويتوقع استجابة HTTP 200 قبل المتابعة.
يبحث التنفيذ في HTML المُعاد عن قيمة مرتبطة بـ CSRF باستخدام التعبيرات النمطية.
يتم حاليًا تنفيذ نمطين.
يبني السكربت طلب رفع متعدد الأجزاء مقابل:```text /index.php?option=com_jce
يتضمن الطلب مهمة استيراد الملف الشخصي والرمز المستخرج.
### 6. التحقق من مسار المرشح
بعد طلب الرفع، يتحقق البرنامج من عدة مواقع محتملة للملف الناتج.
يحتوي المصدر الحالي على مسارات المرشح هذه:```text
/tmp/
/images/
/images/stories/
/media/
بالنسبة لهدف واحد، يستدعي البرنامج الحالي واجهة أوامر تفاعلية عندما يبلّغ عن مسار shell تم رفعه بنجاح.
يرسل المصدر الأوامر باستخدام معاملات POST المسماة:```text cmd c
نظرًا لأن هذه الوظيفة قد تؤدي إلى تنفيذ أوامر عن بُعد، فينبغي حصرها في بيئات معزولة ومصرّح بها صراحةً.
### 8. معالجة أهداف متعددة
عند توفير ملف أهداف، يستخدم البرنامج `ThreadPoolExecutor` ويعالج الأهداف بشكل متزامن.
عدد الخيوط الافتراضي في المصدر هو:```text
10
على مستوى عالٍ، يتبع التنفيذ الحالي هذا التدفق:```text Start │ ├── Parse command-line arguments │ ├── Load local payload file │ ├── Load one target OR target list │ ├── Create ELV_CVE output directory │ ├── Target processing │ │ │ ├── GET target │ ├── Check HTTP response │ ├── Extract token │ ├── Submit profile-import request │ ├── Check candidate file paths │ └── Record result │ └── Write results / display summary
---
## المتطلبات
يستورد المصدر المرفق:
- وحدات مكتبة بايثون القياسية:
- `random`
- `re`
- `time`
- `argparse`
- `sys`
- `os`
- `json`
- `threading`
- `concurrent.futures`
- وحدات الطرف الثالث:
- `requests`
- `urllib3`
لذلك فإن الحد الأدنى لتثبيت التبعيات هو:```bash
python3 -m pip install requests urllib3
لعمليات النشر القابلة للتكرار، ثبّت التبعيات في ملف requirements.txt.
مثال:```text requests urllib3
---
## التثبيت
استنسخ المشروع أو انسخه إلى بيئة تقييم معزولة.
مثال:```bash
git clone <YOUR-REPOSITORY-URL>
cd <YOUR-REPOSITORY-DIRECTORY>
أنشئ بيئة افتراضية:```bash python3 -m venv .venv
قم بتفعيله:```bash
source .venv/bin/activate
تثبيت التبعيات:```bash python3 -m pip install -r requirements.txt
تحقق من Python:```bash
python3 --version
تحقق من التبعية:```bash python3 -c "import requests, urllib3; print('Dependencies OK')"
> استبدل `<YOUR-REPOSITORY-URL>` و `<YOUR-REPOSITORY-DIRECTORY>` بالقيم المستخدمة في مستودعك.
---
## واجهة سطر الأوامر
يعرّف المصدر خيارات سطر الأوامر التالية.
### تحديد الهدف```text
-u, --url
عنوان URL واحد مستهدف.```text -f, --file
مسار إلى ملف يحتوي على عناوين URL الهدف.
هذه الخيارات متنافية ويجب تحديد واحد منها.
### اختيار الحمولة```text
--shell
مسار ملف الحمولة المخصص المحلي.
هذه الوسيطة مطلوبة من قبل التنفيذ الحالي.
-t, --threads
عدد خيوط العمال.
الافتراضي:```text
10
-v, --verbose
يُفعّل علامة verbose التي يكشف عنها محلّل الوسائط.
ملاحظة: يُعرّف المصدر الحالي هذا الخيار لكنه لا يستخدم `args.verbose` لتغيير سلوك الإخراج جوهريًا.
### خيار الإخراج```text
-o, --output
يُعرَّف الوسيط بواسطة المحلل، لكن التنفيذ الحالي لا يستخدم args.output عند كتابة النتيجة النهائية. مسار النتيجة الحالي مُثبَّت بشكل صلب على:```text
ELV_CVE/success.txt
هذا تفصيل تنفيذي يستحق الإصلاح في إصدار مستقبلي.
---
## ملفات الإدخال
### قائمة الأهداف
يتوقع وضع قائمة الأهداف عنوان URL واحدًا في كل سطر.
يتم تجاهل الأسطر الفارغة.
يتم تجاهل الأسطر التي تبدأ بـ `#`.
التنسيق المفاهيمي:```text
https://authorized-target-01.example
https://authorized-target-02.example
# laboratory target
https://authorized-target-03.example
يجب وضع الأهداف التي لديك تفويض صريح لتقييمها فقط في الملف.
تشير الوسيطة --shell إلى ملف محلي يقرأه البرنامج كنص.
لا يتحقق المصدر المقدم من محتوى الملف بما يتجاوز قراءته بنجاح.
للتطوير والاختبار الآمن، استخدم ملف اختبار غير ضار بدلاً من حمولة تنفذ أوامر.
يقوم البرنامج بإنشاء:```text ELV_CVE/
للوضع متعدد الأهداف، يكتب:```text
ELV_CVE/success.txt
يكتب المصدر الحالي عناوين URL الناجحة للـ shell إلى هذا الملف.