
استغلال RCE آلي لـ Joomla JCE (CVE-2026-48907) مع صدفة تفاعلية، تنفيذ أوامر مجمّعة، تنزيل ملفات، ودعم بروكسي لاختبارات الاختراق المصرح بها.
أداة سطر أوامر احترافية لاختبار الاختراق المصرح به، والبحث المنضبط في الثغرات، والتحقق الدفاعي.
للاستخدام المصرح به فقط. شغّل هذا المشروع حصريًا ضد الأنظمة التي تملكها أو التي لديك إذن صريح باختبارها. استخدم بيئة مختبرية خاضعة للتحكم كلما أمكن.

JCEzploit هي أداة بحث أمني تعمل عبر سطر الأوامر لتقييم وظيفة استيراد الملفات التعريفية (profile-import) لمكوّن Joomla Content Editor (JCE) في البيئات التي يمتلك فيها المختبر إذنًا صريحًا. صُممت لصالح مختصّي اختبار الاختراق المحترفين، وباحثي الأمن، والمدافعين الذين يحتاجون إلى إعادة إنتاج حالة تنفيذ تعليمات برمجية عن بُعد تم الإبلاغ عنها والتحقق منها في بيئة خاضعة للتحكم.
يوفر المشروع سير عمل منظمًا عبر سطر الأوامر، ودعمًا قابلًا للتهيئة للوسيط (proxy)، وأوضاع تنفيذ متعددة، ومخرجات تشخيصية، وواجهة جلسة تفاعلية. يجب استخدامه فقط ضد أهداف يملكها المشغّل أو تغطيها أذونات اختبار كتابية.
ملاحظة نشر: قبل نشر أو توزيع هذا الملف، تحقق من معرّف CVE الخاص بالمشروع، ونطاق الإصدارات المتأثرة، والإصدار المُصحَّح، وحالة الإفصاح، ومصفوفة الاختبارات مقابل سجل موثوق من البائع أو قاعدة بيانات ثغرات. البيانات الوصفية أدناه تعكس معلومات المشروع المقدَّمة ولا ينبغي التعامل معها كتأكيد مستقل للثغرة.
يمكن لهذا البرنامج أن يسبب وصولًا غير مصرح به، أو كشفًا للبيانات، أو انقطاعًا في الخدمة، أو اختراقًا للنظام عند استخدامه ضد هدف غير معتمد. لا يأذن القائمون على الصيانة باختبار أنظمة الأطراف الثالثة، أو البنية التحتية العامة، أو الأنظمة دون إذن موثق.
باستخدامك لهذا المشروع، فإنك توافق على:
اختبار الأنظمة التي لديك إذن كتابي صريح لاختبارها فقط.
تحديد واتباع نطاق معتمد، ونافذة زمنية، وحدود لمعدل الطلبات، وقواعد اشتباك.
تجنب الوصول إلى البيانات غير الضرورية أو تعديلها أو إخراجها أو الاحتفاظ بها.
إيقاف الاختبار فورًا إذا كان النشاط قد يعرّض الخدمة للانقطاع أو يؤثر على مستخدمين غير معنيين.
الامتثال لجميع القوانين واللوائح والعقود والسياسات التنظيمية المعمول بها.
تحمّل مسؤولية العواقب المترتبة على استخدامك للبرنامج.
يقدّم المؤلف والمساهمون هذا المشروع على أساس "كما هو" ولا يتحملون المسؤولية عن سوء الاستخدام، أو الأضرار، أو فقدان البيانات، أو المطالبات القانونية، أو غيرها من العواقب الناشئة عن استخدامه.
التفاصيل التالية سُلِّمت مع المشروع وتتطلب تحققًا مستقلًا قبل استخدامها في نشرة أمنية أو تقييم إنتاجي.
| الحقل | تفاصيل المشروع المقدَّمة |
|---|---|
| معرّف الثغرة | CVE-2026-48907 |
| المشكلة المُبلَّغة | تنفيذ تعليمات برمجية عن بُعد دون مصادقة |
| الإصدارات المتأثرة المُبلَّغة | JCE 1.0.0 حتى 2.9.99.4 |
| الإصدار المُصحَّح المُبلَّغ | JCE 2.9.99.5 |
| بيئة الاختبار المقدَّمة | Joomla 3.10.11، JCE 2.9.15، Apache 2.4، PHP 7.4 |
| الخطورة المُبلَّغة | حرجة؛ احتمال اختراق كامل للنظام |
للعمل الدفاعي، تأكد أولًا من إصدارات Joomla و JCE المنشورة، واحصل على التصريح، وأنشئ خطة تراجع، وفضّل طريقة تحقق غير مدمرة كلما أمكن.
تتضمن JCEzploit الإمكانيات التالية كما هو موصوف في مواد المشروع:
| المجال | الإمكانية |
|---|---|
| سير العمل | سير عمل آلي لإعداد الطلبات والتحقق من الثغرة |
| واجهة الجلسة | جلسة أوامر تفاعلية مع سجل، وإكمال تلقائي، ومخرجات ملونة |
| أوضاع التنفيذ | أوضاع تفاعلية، وأمر واحد، ودُفعات، وهادئة، ومفصّلة، وموجّهة للتصحيح |
| الاكتشاف | اكتشاف رمز CSRF مع أنماط احتياطية متعددة |
| التحكم في الشبكة | دعم وسيط HTTP/HTTPS لفحص الطلبات بشكل خاضع للتحكم |
| الموثوقية | تجميع الاتصالات، والمهلات، ومعالجة الأخطاء |
| عمليات الملفات | وظيفة استرجاع الملفات لسيناريوهات التقييم المصرح بها |
| دعم المنصات | بيئات Linux و macOS و Windows مع بايثون 3.6+ |
تدعم الواجهة التفاعلية أوامر مثل ما يلي. استخدم فقط الأوامر غير المدمرة في بيئات الاختبار المعتمدة.
$> whoami # عرض هوية التنفيذ
$> id # عرض معلومات المستخدم والمجموعة
$> pwd # عرض مجلد العمل الحالي
$> exit # إغلاق الجلسة
| المتطلب | الحد الأدنى أو القيمة المدعومة |
|---|---|
| بايثون | 3.6 أو أحدث |
| مدير الحزم | pip |
| أنظمة التشغيل | Linux أو macOS أو Windows |
| الوصول إلى الشبكة | مطلوب فقط لتثبيت التبعيات والوصول إلى هدف اختبار مصرح به |
مجموعة التبعيات الدقيقة محددة في requirements.txt. استخدم بيئة افتراضية لعزل تبعيات المشروع عن النظام المضيف.
git clone https://github.com/CerberusMrXi/JCEzploit-CVE-2026-48907.git
cd JCEzploit-CVE-2026-48907
python3 -m venv .venv
source .venv/bin/activate
python -m pip install --upgrade pip
pip install -r requirements.txt
chmod +x jcezploit.py
git clone https://github.com/CerberusMrXi/JCEzploit-CVE-2026-48907.git
Set-Location JCEzploit-CVE-2026-48907
python -m venv .venv
.\.venv\Scripts\Activate.ps1
python -m pip install --upgrade pip
pip install -r requirements.txt
إذا حالت سياسات تنفيذ PowerShell دون التفعيل، فاستشر سياسة إدارة نقاط النهاية في مؤسستك بدلًا من إضعاف الضوابط الأمنية على مستوى النظام. يمكن أيضًا استدعاء البرنامج النصي مباشرةً عبر مترجم البيئة الافتراضية.
pip install pipenv
pipenv install requests rich
pipenv shell
python jcezploit.py --help
إذا كان المستودع يحتوي على Dockerfile مُحدَّث، فابنِه وشغّله في بيئة مختبرية معزولة ومصرح بها:
docker build -t jcezploit .
docker run --rm -it jcezploit --help
لا تقم بتركيب أدلة حساسة من النظام المضيف، أو بيانات اعتماد الإنتاج، أو شبكات المضيف غير المقيدة داخل الحاوية.
ابدأ دائمًا بمراجعة نطاق الهدف وعرض التعليمات المدمجة:
python jcezploit.py --help
واجهة سطر الأوامر المقدَّمة موضحة أدناه.
usage: jcezploit.py [-h] -u URL [--proxy PROXY] [-v] [-q]
[--cmd CMD] [--interactive] [--batch FILE]
[--no-confirm]
JCEzploit - Joomla JCE security testing utility
options:
-h, --help Show this help message and exit
-u, --url URL Authorized target base URL (required )
--proxy PROXY HTTP proxy, for example http://127.0.0.1:8080
-v, --verbose Enable diagnostic output
-q, --quiet Suppress non-essential output
--cmd CMD Execute one approved test command and exit
--interactive Start an interactive test session
--batch FILE Read approved test commands from a file
--no-confirm Skip the confirmation prompt; use only in automation
توضح الأمثلة التالية أنماط الاستدعاء. استبدل الهدف بنقطة اختبار مختبرية أو تقييمية مصرح بها صراحةً.
# بدء جلسة تقييم تفاعلية.
python jcezploit.py --url http://authorized-lab.example --interactive
# تنفيذ فحص هوية منخفض التأثير.
python jcezploit.py --url http://authorized-lab.example --cmd "id"
# توجيه الطلبات عبر وسيط فحص محلي.
python jcezploit.py \
--url http://authorized-lab.example \
--proxy http://127.0.0.1:8080 \
--interactive \
--verbose
أنشئ ملف أوامر يحتوي فقط على خطوات تحقق معتمدة مسبقًا وغير مدمرة:
# commands.txt
whoami
id
pwd
شغّل ملف الدفعات ضد الهدف المعتمد:
python jcezploit.py --url http://authorized-lab.example --batch commands.txt
استخدم --verbose عند استكشاف أخطاء تدفق الطلبات في بيئة خاضعة للتحكم أو عند جمع أدلة لتقرير تقييم. استخدم --quiet عند دمج المخرجات في خط أنابيب أتمتة معتمد. تجنب تخزين الأسرار، أو رموز الجلسات، أو محتويات الاستجابات، أو البيانات الشخصية في سجلات مشتركة.
يقبل المشروع إعدادات عبر سطر الأوامر. قد تُستخدم اصطلاحات متغيرات البيئة التالية بواسطة أغلفة أو أدلة تشغيل محلية، بشرط أن يدعمها التنفيذ صراحةً:
TARGET_URL=http://authorized-lab.example
PROXY=http://127.0.0.1:8080
VERBOSE=true
QUIET=false
لا تقم بإيداع ملفات .env، أو بيانات الاعتماد، أو الرموز، أو قوائم الأهداف، أو الاستجابات الملتقطة، أو نتائج التقييم في التحكم بالإصدارات. أضف ملفات الإعدادات المحلية إلى .gitignore واستخدم مدير أسرار عند الاقتضاء.
JCEzploit/
├── jcezploit.py # Main command-line program
├── requirements.txt # Runtime dependencies
├── README.md # Project documentation
├── LICENSE # MIT License
├── .gitignore # Ignored local and generated files
├── setup.sh # Optional setup helper
├── sample_commands.txt # Example command file
├── Dockerfile # Container build definition
├── verify.py # Dependency verification helper
└── docs/
├── vulnerability_details.md
├── pentest_guide.md
└── changelog.md
تعكس الشجرة أعلاه تخطيط المشروع المقدَّم. حدّثها كلما أُضيفت ملفات أو أُزيلت أو أُعيدت تسميتها.
ثبّت تبعيات التطوير فقط إذا كان المستودع يوفر ملف requirements-dev.txt مُحدَّثًا:
pip install -r requirements-dev.txt
python -m pytest tests/
قبل فتح طلب سحب، تأكد من توثيق التغييرات، ونجاح الاختبارات، ووضوح معالجة الأخطاء، وعدم تضمين أي بيانات هدف أو أسرار في الالتزامات. أضف اختبارات انحدار للتحليل، والتحقق من المدخلات، ومعالجة الوسيط، وسلوك المهلات، ومسارات الفشل الآمنة.
يجب أن يستخدم التقييم الاحترافي بيئة اختبار مخصصة كلما أمكن. خذ نسخة احتياطية أو لقطة قبل التحقق، وحدد إجراء إيقاف طارئ، وراقب صحة التطبيق والمضيف، ونسّق مع مالك النظام طوال نافذة الاختبار.
لا ينبغي استخدام الأداة لإنشاء استدامة، أو نشر برمجيات خبيثة إضافية، أو تجاوز المراقبة، أو الوصول إلى حسابات غير ذات صلة، أو تفريغ ملفات حساسة، أو التحرك جانبيًا. يجب أن يقتصر جمع الأدلة على ما هو ضروري لإظهار النتيجة وأن يتبع متطلبات العميل في التعامل مع البيانات.
إذا كشف الاختبار عن مشكلة غير معروفة سابقًا، فلا تنشر تفاصيل الاستغلال فورًا. أبلغ البائع أو المشروع المتأثر بشكل خاص، وقدّم أدلة دفاعية قابلة لإعادة الإنتاج، واسمح بوقت معقول للمعالجة، ونسّق أي إفصاح عام. راجع مركز أمان Joomla للحصول على إرشادات المشروع المنشورة حول الإبلاغ الأمني.
نرحب بمساهمات المتخصصين في الأمن والمطورين الذين يدعمون البحث الدفاعي المسؤول. يرجى فتح قضية (issue) قبل إجراء تغييرات كبيرة لمناقشة النطاق وتوقعات السلامة.
سير عمل المساهمة المعتاد هو:
git checkout -b feature/documentation-improvement
# Make and test your changes
git add .
git commit -m "Improve documentation"
git push origin feature/documentation-improvement
يجب أن تشرح طلبات السحب المشكلة التي يتم معالجتها، وتصف التغيير، وتحدد التغطية الاختبارية، وتوثق أي آثار توافق أو سلامة. اتبع PEP 8 لتعليمات بايثون، وفضّل رسائل خطأ واضحة، وتجنب تضمين الأسرار، وحافظ على ضمانات المشروع الأخلاقية للاستخدام.
الإصدار الأولي للمشروع.
إضافة سير عمل اختبار أمان JCE المُبلَّغ.
إضافة دعم الجلسة التفاعلية.
إضافة وظيفة استرجاع الملفات للاختبار المصرح به.
إضافة معالجة أوامر الدفعات.
إضافة دعم الوسيط.
إضافة مخرجات سطر أوامر غنية.
إضافة دعم عبر المنصات.
توسيع تغطية التحقق الدفاعي.
تحسين اختبارات التوافق عبر إصدارات Joomla و JCE المدعومة.
إضافة مخرجات تقارير تقييم منظمة.
إضافة تحقق أقوى من المدخلات وسلوك افتراضي أكثر أمانًا.
إضافة اختبارات وحدة وتكامل آلية.
توفير إعداد مختبر موثق لأبحاث قابلة لإعادة الإنتاج.
يُوزَّع هذا المشروع بموجب رخصة MIT. راجع LICENSE للحصول على نص الرخصة الكامل.
MIT License
Copyright (c) 2024 Sudeepa Wanigarathna
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
Sudeepa Wanigarathna
Security Researcher and Penetration Tester
ينبغي تحديث المشروع برابط مباشر لسجل الثغرة بعد التحقق المستقل من بيانات CVE الوصفية في 4. تتوفر إرشادات عامة للاختبار الدفاعي في 3.
استخدم هذا المشروع بمسؤولية، ووفقًا للقانون، وفقط بإذن صريح.