## https://sploitus.com/exploit?id=KITPLOIT:TOOLS-GITHUB-XSHADOW-HERE-CVE-2026-4883
# CVE-2026-4883: Piotnet Forms Pro <= 2.1.40 - رفع ملف تعسفي غير مصادق → RCE
ينشأ الثغر من التحقق غير الكافي من نوع الملف في دالة `piotnetforms_ajax_form_builder`. يستخدم الإضافة قائمة سوداء غير مكتملة للملحقات تحظر فقط `php`، `phpt`، `php5`، `php7`، و `exe` مع السماح بدائل خطيرة مثل `.phtml` أو `.phar`.
## تفاصيل الثغرة
* **درجة CVSS:** 9.8 (حرجة)
* **المتجه:** CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
* **الإصدارات المتأثرة:** <= 2.1.40
* **حالة التصحيح:** لا يوجد تصحيح متاح
* **تاريخ النشر:** 18 مايو 2026
* **الباحثون:** Shadow & Friska (مؤلفو إثبات المفهوم)
## تحليل السبب الجذري
تم تسجيل معالج AJAX دون أي شرط مصادقة:
root@kitploit:~
// inc/forms/ajax-form-builder.php:9-10
add_action( 'wp_ajax_piotnetforms_ajax_form_builder', 'piotnetforms_ajax_form_builder' );
add_action( 'wp_ajax_nopriv_piotnetforms_ajax_form_builder', 'piotnetforms_ajax_form_builder' );
يعتمد التحقق من الملف فقط على قائمة سوداء غير مكتملة للملحقات دون التحقق من نوع MIME أو البايتات السحرية:
root@kitploit:~
// inc/forms/ajax-form-builder.php:678-688
$not_allowed_extensions = [ 'php', 'phpt', 'php5', 'php7', 'exe' ];
$file_extension = pathinfo( $file_name_san, PATHINFO_EXTENSION );
if ( in_array( strtolower( $file_extension ), $not_allowed_extensions ) ) {
wp_die();
}
// .phar, .phtml, .php8, .pht, etc. all pass through freely
move_uploaded_file( $file['tmp_name'][$i], $new_file );
يحتوي دليل الرفع فقط على `index.html` فارغ لمنع سرد الدليل — لا يوجد `.htaccess` لمنع تنفيذ PHP. تصبح الملفات المرفوعة متاحة للجمهور في:
root@kitploit:~
/wp-content/uploads/piotnetforms/files/{filename}-{uniqid}.{ext}
يمكن استرداد رابط الملف بدون مصادقة عبر إجراء AJAX `piotnetforms_export_form_submission` (أيضًا `nopriv`)، مما يكمل سلسلة RCE غير المصادقة بالكامل.
هذا هو نفس خطأ النسخ واللصق الموجود في CVE-2026-4885 — يشترك كلا الإضافات في نفس كود معالجة الرفع الضعيف من نفس المطور.
## تعليمات الاستخدام
**الوضع التفاعلي:**
root@kitploit:~
python3 shadow.py
**هدف واحد:**
root@kitploit:~
python3 shadow.py -u https://target.com
python3 shadow.py -u https://target.com -s shadow.phtml
**مسح جماعي:**
root@kitploit:~
python3 shadow.py -f targets.txt -t 20
python3 shadow.py -f targets.txt -t 20 -s shadow.phtml
**خيارات سطر الأوامر:**
* `-u, --url` \- رابط الهدف
* `-f, --file` \- ملف الأهداف (واحد لكل سطر)
* `-s, --shell` \- شيل PHP مخصص (يتم إضافة GIF89a تلقائيًا)
* `-t, --threads` \- الخيوط المتزامنة (الافتراضي: 5)
* `-h, --help` \- عرض المساعدة
## الميزات الرئيسية
* قائمة تفاعلية للفحص الفردي أو الجماعي
* استطلاع متوازي غير متزامن
* اكتشاف تلقائي لمعاملات النموذج من المدخلات المخفية في HTML
* بايتات سحرية متعددة اللغات GIF89a لمحاولات التجاوز
* تسرب الرابط عبر `piotnetforms_export_form_submission` (غير مصادق)
* التحقق من رفع الشيل مع فحوصات تنفيذ PHP
* حفظ النتائج في `shell.txt`
* خيوط قابلة للتكوين للعمليات الجماعية
## الملحقات المحظورة
`.php` `.phpt` `.php5` `.php7` `.exe`
**ملحقات التجاوز:** `.phtml` `.phar` `.shtml` `.php8`
## المتطلبات
root@kitploit:~
pip install httpx
## إخلاء مسؤولية
الأداة مخصصة حصريًا لاختبار الأمان المصرح به والأغراض التعليمية. اختبار الأنظمة غير المصرح به محظور.