
Python PoC يتحقق من CVE-2025-6325 تصعيد الصلاحيات بدون مصادقة و CVE-2025-6327 رفع ملفات عشوائي RCE في King Addons for Elementor <= 51.1.36.
أداة بحث وتحقق لـ King Addons for Elementor <= 51.1.36، تغطي ثغرتين موثقتين:
لاختبارات الأمان المصرّح بها، وأبحاث الثغرات، وبيئات المختبرات المُتحكَّم بها فقط.
يوفر هذا المشروع إثبات مفهوم مزدوج الغرض للتحقق من التأثير الأمني لثغرتين في King Addons for Elementor.
تصعيد صلاحيات بدون مصادقة عبر وظيفة التسجيل في King Addons.
يقبل التدفق المصاب قيمة user_role التي يتحكم بها العميل ويمررها إلى إنشاء مستخدم WordPress دون فرض قائمة أدوار مسموح بها مناسبة.
الإصدار المصاب: <= 51.1.36
الإصدار المُرقَّع: 51.1.37
يستخدم تدفق التسجيل المصاب:
POST /wp-admin/admin-ajax.php
action=king_addons_user_register
user_role=administrator
يتحقق إثبات المفهوم أيضًا مما إذا كان الحساب المُنشأ قادرًا على المصادقة والوصول إلى صفحة إدارة مستخدمي WordPress.
رفع ملفات عشوائي بدون مصادقة عبر وظيفة الرفع في منشئ النماذج في King Addons.
يمكن لمعالج الرفع المصاب أن يقبل ملف PHP بشكل غير صحيح، مما يؤدي إلى ملف مرفوع يمكن الوصول إليه عبر الويب واحتمال تنفيذ تعليمات برمجية من جانب الخادم.
الإصدار المصاب: <= 51.1.36
الإصدار المُرقَّع: 51.1.37
إجراء AJAX ذو الصلة هو:
POST /wp-admin/admin-ajax.php
action=king_addons_upload_file
يتحقق إثبات المفهوم من تدفق الرفع ويتحقق مما إذا كان ملف الاختبار المرفوع قادرًا على تنفيذ أمر id غير ضار.
يدعم السكربت أربعة أوضاع تشغيل:
check
privesc
upload
both
يتم عرض هذه الأوضاع مباشرةً من خلال واجهة سطر الأوامر.
يتطلب Python 3.
لا توجد حزم Python خارجية مطلوبة.
تحقق من إصدار Python الخاص بك:
python3 --version
تشغيل فحصي الثغرتين:
python3 exploit.py -u http://target.local --exploit both
اكتشاف nonces الخاصة بـ King Addons المكشوفة دون تشغيل مراحل الاستغلال:
python3 exploit.py -u http://target.local --exploit check
python3 exploit.py -u http://target.local --exploit privesc
python3 exploit.py -u http://target.local --exploit upload
أنشئ ملف أهداف:
http://target1.local
https://target2.local
http://target3.local
يتم تجاهل التعليقات والأسطر الفارغة.
تشغيل تقييم سلبي:
python3 exploit.py -l targets.txt --exploit check
تشغيل مرحلتي التحقق:
python3 exploit.py -l targets.txt --exploit both -t 20
تشغيل التحقق من الرفع:
python3 exploit.py -l targets.txt --exploit upload -t 20
تشغيل التحقق من تصعيد الصلاحيات:
python3 exploit.py -l targets.txt --exploit privesc -t 20
يبحث إثبات المفهوم تلقائيًا في صفحات الهدف عن nonces المطلوبة للتدفقين المصابين.
إعدادات الزاحف الافتراضية:
Depth : 3
Max pages : 80
Timeout : 20 seconds
Threads : 10
يتم تعريف هذه الإعدادات الافتراضية في تكوين CLI الخاص بالسكربت.
مثال:
python3 exploit.py \
-l targets.txt \
--exploit both \
-t 20 \
--depth 3 \
--max-pages 80 \
--timeout 20
يستخدم السكربت افتراضيًا results.tsv للنتائج المنظمة وloot.txt لإدخالات التحقق الناجح.
أثناء التنفيذ، تُبلغ الأداة عن عدة حالات.
يشير إلى نجاح التحقق من الرفع واستجابة ملف PHP الاختباري لطلب التحقق.
مثال:
PWNED [SHELL]
يشير إلى أن التحقق من تصعيد الصلاحيات أنشأ حسابًا باستخدام تدفق التسجيل المصاب.
تسجل الأداة أيضًا ما إذا تم التحقق من الحساب مقابل صفحة إدارة مستخدمي WordPress.
تمت مصادقة الحساب المُنشأ بنجاح وتأكيده في صفحة مستخدمي WordPress.
نجح طلب التسجيل، لكن خطوة التحقق اللاحقة لم تتمكن من تأكيد الحساب الناتج.
لم يتم الحصول على نتيجة تحقق ناجحة.
أنتج الهدف خطأ في الشبكة أو التحليل أو الزحف أو خطأ تنفيذ آخر.
تُكتب النتائج المنظمة بصيغة TSV:
results.tsv
يحتوي الإخراج على حقول لـ:
target
status
shell_url
shell_rce
priv_user
priv_pwd
priv_verified
err
هذا التنسيق مفيد لاستيراد النتائج إلى جداول البيانات أو لمزيد من المعالجة.
تُكتب إدخالات التحقق الناجح بالإضافة إلى ذلك في:
loot.txt
يكتب السكربت نتائج التحقق من shell والصلاحيات كإدخالات منفصلة.
Visitor
│
▼
Public King Addons Register Form
│
▼
Nonce discovery
│
▼
king_addons_user_register
│
▼
Client-controlled user_role
│
▼
WordPress user creation
│
▼
Privilege escalation validation
يرسل إثبات المفهوم تحديدًا:
user_role=administrator
إلى نقطة نهاية التسجيل.
Visitor
│
▼
King Addons Form Builder
│
▼
Upload nonce discovery
│
▼
king_addons_upload_file
│
▼
PHP test file upload
│
▼
Uploaded file URL
│
▼
Benign execution verification
يستخدم إثبات المفهوم اسم ملف اختباري مُولَّد بشكل فريد ويتحقق من عنوان URL للرفع المُعاد.
تم اختبار تنفيذ البحث مقابل:
WordPress 6.8 / 7.1
Elementor 4.2.3
King Addons 51.1.14
تشير ملاحظات البحث إلى نجاح التحقق من كلا التدفقين في بيئة مختبر مُتحكَّم بها، بما في ذلك تصعيد الصلاحيات وتنفيذ shell. كما تم اختبار ضابط سلبي مقابل الإصدار 51.1.37.
تشير ملاحظات البحث إلى أن بعض إصدارات ZIP على WordPress.org للإصدارين 51.1.35 و51.1.36 أُعيد وسمها لاحقًا بإصلاحات جزئية.
لذلك تم تأكيد التنفيذ المصاب باستخدام وسم SVN المشار إليه 51.1.14.
إذا كنت تعيد إنتاج البحث، فاستخدم إصدار المختبر والحزمة المحددة بالضبط كما حددها البحث بدلًا من افتراض أن كل حزمة مُوسَمة 51.1.35 أو 51.1.36 تحتوي على كود مصاب مماثل.
هذا المشروع مخصص لـ:
اختبر فقط الأنظمة التي لديك تصريح صريح بشأنها.
لا تستخدم هذا المشروع ضد بنية تحتية تابعة لطرف ثالث دون إذن.
لا يشجع المؤلف على الوصول غير المصرّح به أو الاستمرارية أو سرقة البيانات أو تعطيل الأنظمة.
يُقدَّم هذا البرنامج لأغراض أبحاث الأمان والاختبار المصرّح به.
أنت مسؤول عن ضمان أن استخدامك لهذا المشروع يتوافق مع القوانين واللوائح والعقود ومتطلبات التصريح المعمول بها.
لا يتحمل المؤلف والمساهمون أي مسؤولية عن سوء الاستخدام أو الضرر أو تعطيل الخدمة أو فقدان البيانات أو غيرها من العواقب الناتجة عن الاستخدام غير المصرّح به.
JohenLastGen — JLG NETWORK
أبحاث وأدوات أمنية
Telegram:
@johenlastgen
Channel:
@jlgnetworkredirect
MIT License
راجع LICENSE للحصول على النص الكامل للترخيص.
| الخيار | الوصف |
|---|
-u, --url | اختبار عنوان URL لهدف واحد |
-l, --list | ملف يحتوي على عناوين URL للأهداف |
-e, --exploit | اختيار check أو privesc أو upload أو both |
-t, --threads | عدد العمال المتزامنين |
--depth | الحد الأقصى لعمق روابط الزاحف |
--max-pages | الحد الأقصى للصفحات المزحوفة لكل هدف |
--timeout | مهلة طلب HTTP بالثواني |
-o, --output | إخراج النتائج بصيغة TSV |
--loot | إخراج التحقق الناجح |
--no-color | تعطيل ألوان الطرفية |