
التحقق المخبري لـ CVE-2026-48908 في Joomla SP Page Builder، ويغطي رفع أيقونة غير مصرح به، كتابة ملف PHP، تنفيذ كود كـ www-data، أدلة auditd وPCAP، إعادة بناء الجدول الزمني للأحداث، وتوصيات كشف SOC. يتضمن تقارير بالبولندية والإنجليزية.
التحقق المخبري لثغرة CVE-2026-48908 في مكون SP Page Builder لجوملا، مع التركيز على الأدلة التقنية، إعادة بناء الأحداث، وفرص الكشف الدفاعي.
يُوثّق هذا المستودع اختبارًا مُتحكمًا فيه حيث قبلت نقطة النهاية asset.uploadCustomIcon في SP Page Builder أرشيفات الرموز المرفوعة التي نتج عنها كتابة قطع PHP تحت دليل الوسائط لجوملا. أدى استدعاء ملف PHP المرفوع عبر HTTP إلى تنفيذ الأوامر كمستخدم عملية خادم الويب. تم التقاط نشاط HTTP والملفات والعمليات والمصادقة والشبكة الناتج باستخدام سجلات حاوية Apache، وauditd في لينكس، وtcpdump، وبيانات Docker عن بعد، واستقصاء تغييرات الملفات، ولقطات شاشة من مضيف Windows.
[!IMPORTANT] يحتوي هذا المستودع على تقارير ولقطات شاشة فقط. لم يتم تضمين كود الاستغلال الهجومي، أو مصدر الحمولة، أو ملفات PCAP الخام، أو حزم أدلة المضيف الخام عمدًا. المادة مخصصة للتحقق من الثغرات، وهندسة مراكز العمليات الأمنية، وتطوير الكشف، والتحضير للاستجابة للحوادث، والبحث المصرح به.
يحتوي كلا التقريرين على منهجية الاختبار الكاملة، ومقتطفات الأدلة، والجدول الزمني للأحداث، وأدلة تغيير الملفات، ومؤشرات الشبكة، وإرشادات التخفيف، وتوصيات المراجعة، وأمثلة منطق SIEM.
.
├── README.md
├── SHA256SUMS.txt
├── reports/
│ ├── CVE-2026-48908_SP_Page_Builder_detection_EN.pdf
│ └── CVE-2026-48908_SP_Page_Builder_detection_PL.pdf
└── screenshots/
├── 01_poc_upload_and_code_execution.png
├── 02_http_whoami_www_data.png
├── 03_tcp_callback_ncat.png
├── 04_reverse_shell_session.png
└── 05_root_access_and_su_failure_redacted.png
لم يتم تضمين مصدر الاستغلال، أو مصدر الحمولة، أو PCAP الخام، أو حزمة أدلة Docker الخام، أو ملفات مصدر DOCX.
كانت جذر الويب لجوملا /var/www/html مدعومة بواسطة حجم Docker joomla5-builders_joomla_data. هذا مهم للكشف: لم يوفر docker diff رؤية مفصلة لتغييرات الملفات داخل الحجم، لذا كان على مراقبة الملفات الاعتماد على قوائم الملفات الواعية للحجم وإرشادات مراقبة المضيف.
تم إجراء الاختبار في بيئة مخبرية معزولة ومصرح بها. غطى التحقق التسلسل التالي:
asset.uploadCustomIcon في SP Page Builder أرشيفات الرموز المرفوعة في البيئة المخبرية./media/com_sppagebuilder/assets/iconfont/..htaccess غير معالجة PHP لامتداد .PHP./root وتبديل المستخدم باستخدام su -.تتعمد التقارير توثيق الأدلة ومنطق الكشف دون توزيع استغلال قابل لإعادة الاستخدام أو تنفيذ حمولة.
أكد الاختبار المخبري:
asset.uploadCustomIcon في SP Page Builder؛.htaccess تحت دليل الوسائط لجوملا؛www-data؛داخل الحاوية، كانت الهوية الفعلية:
uid=33(www-data) gid=33(www-data) groups=33(www-data)
كانت محاولة تصعيد الامتيازات الفاشلة مرئية على النحو التالي:
cd root
bash: cd: root: Permission denied
su -
Password:
su: Authentication failure
اختبر PoC العام عدة متغيرات للامتداد وأكد أن مزيجًا يتضمن امتداد PHP مختلط الأحرف وملف .htaccess قد يؤدي إلى التنفيذ في الإعداد المخبري.

نفذ طلب HTTP مسيطر عليه الأمر whoami، وعرض المتصفح مستخدم العملية الفعلي.

قبل الاختبار التفاعلي، تم استخدام اتصال رد اتصال أكثر أمانًا لمرة واحدة لتأكيد الاتصال الخارجي من البيئة المستهدفة إلى مضيف ويندوز على منفذ TCP 4444.

أكدت الجلسة التفاعلية التنفيذ كمستخدم www-data، ونظام لينكس كنظام تشغيل، ودليل عمل تحت مسار وسائط SP Page Builder لجوملا.

فشلت محاولات الوصول إلى /root والمصادقة باستخدام su -. تم تحرير لقطة الشاشة لتجنب نشر كلمة مرور الاختبار.

الجدول الزمني الكامل متاح في كلا تقريري PDF. كانت أهم الأحداث:
جمع المضيف الضحية:
auditd لـ execve;tcpdump;حدد الاختبار أيضًا قيدًا للمراقبة: نظرًا لأن /var/www/html كان مدعومًا بحجم Docker، لم يُظهر docker diff إنشاء ملفات مفصلة تحت /var/www/html/media/com_sppagebuilder/assets/iconfont/. لذلك يجب أن تغطي مراقبة تكامل الملفات المسار الحقيقي للمضيف الذي يدعم الحجم.
كانت أدلة مضيف ويندوز محدودة عمدًا بلقطات شاشة ذات صلة بالتقرير:
whoami;/root وsu - الفاشلة مع إخفاء كلمة المرور.مراقبة القياس عن بعد HTTP أو الخادم الوكيل العكسي أو WAF أو الشبكة للمزيج التالي:
POST /index.php?option=com_sppagebuilder&task=asset.uploadCustomIcon
User-Agent يحتوي على: sppb-rce-poc
الحالة: 200 أو 201 أو 204
في الإنتاج، لا تعتمد فقط على User-Agent الخاص بـ PoC العام. نقطة النهاية ونمط التحميل غير المتوقع هما مؤشران أكثر استقرارًا من قيمة User-Agent.
.htaccess تحت مسار أيقونات SP Page Builderمراقبة القياس عن بعد للملفات بحثًا عن ملفات جديدة أو معدلة تطابق:
/media/com_sppagebuilder/assets/iconfont/*/fonts/*.php
/media/com_sppagebuilder/assets/iconfont/*/fonts/*.PHP
/media/com_sppagebuilder/assets/iconfont/*/fonts/*.pHp
/media/com_sppagebuilder/assets/iconfont/*/fonts/*.Php
/media/com_sppagebuilder/assets/iconfont/*/fonts/.htaccess
وجود .htaccess يحتوي على AddType application/x-httpd-php .PHP في دليل تحميل الوسائط هو مؤشر عالي القيمة.
ربط نشاط التحميل بطلبات HTTP اللاحقة إلى مسارات مثل:
/media/com_sppagebuilder/assets/iconfont/*/fonts/*
يتم تحقيق ثقة أعلى عندما يستهدف الطلب امتدادًا شبيهًا بـ PHP ويتضمن معلمات مثل t= وc=.
تشمل مؤشرات العملية عالية القيمة:
المستخدم: www-data أو apache أو nginx
العملية: bash أو sh أو dash أو php
سطر الأوامر يحتوي على: /dev/tcp أو bash -i أو عوامل إعادة التوجيه أو تنفيذ مفسر غير معتاد
إنذار عندما تبدأ صدفة أو مفسر تم تشغيله بواسطة عملية خادم الويب اتصالًا خارجيًا إلى محطة عمل أو منفذ وجهة غير معتاد. استخدم حدث المختبر منفذ TCP 4444، لكن الكشف في الإنتاج يجب ألا يعتمد على منفذ واحد.
أنتج الاختبار محاولة su - فاشلة. راقب أدوات المصادقة مثل unix_chkpwd، والكتابة إلى /var/log/btmp، والأوامر التفاعلية بعد اختراق حساب خدمة الويب.
عند اكتشاف مؤشر تحميل HTTP، يجب على مركز العمليات الأمنية ربطه فورًا بـ:
/media/com_sppagebuilder/assets/iconfont/;.htaccess تحت أدلة وسائط جوملا;t= وc=;whoami وid وuname وhostname وpwd وip وifconfig وnetstat أو ss;ليس حدث تحميل واحد كافيًا دائمًا بمفرده. أقوى إنذار يجمع بين التحميل وإنشاء الملف والوصول إلى الملف وتنفيذ العملية والقياس عن بعد للشبكة خلال نفس النافذة الزمنية القصيرة.
/media/com_sppagebuilder/assets/iconfont/ ودليل وسائط جوملا الأوسع بحثًا عن ملفات شبيهة بـ PHP وقطع .htaccess..htaccess أو .phtml أو .phar أو أرشيف أو قطع قابلة للتنفيذ من أدلة التحميل.asset.uploadCustomIcon من شبكات غير موثوقة.docker diff وحده لمراقبة جذر الويب عندما يتم تخزين بيانات التطبيق في أحجام Docker أو روابط التثبيت.www-data; لم يتم تأكيد تصعيد الامتيازات إلى الجذر.تم توفير هذه المادة لأغراض البحث الأمني الدفاعي، وإدارة الثغرات، وهندسة الكشف، والتحضير للاستجابة للحوادث، والاختبار المصرح به. لا تستخدمها ضد أنظمة دون إذن صريح.
| الدور | النظام |
|---|
| المضيف الضحية | Ubuntu 24.04.4 LTS، نواة 6.17.0-35-generic، Docker Engine 29.5.3 |
| التطبيق المستهدف | Joomla 5.4.7، PHP 8.3.32، خادم Apache HTTP، الصورة joomla:5-php8.3-apache |
| المكون | JoomShaper SP Page Builder |
| الحاوية | joomla5-builders |
| محطة المهاجم | Microsoft Windows 11 Home 10.0.26200 |
| خدمة جوملا | http://172.20.10.3:8080 |
| عنوان اختبار ويندوز | 172.20.10.2 |
| عنوان الحاوية | 172.21.0.3 |
| تاريخ الاختبار | 9 يوليو 2026 |
| UTC | الحدث |
|---|
| 19:33:56 | بدء مراجعة لينكس، tcpdump، أحداث Docker، واستقصاء تغييرات الملفات |
| 19:34:23 | سلسلة من طلبات POST إلى /index.php?option=com_sppagebuilder&task=asset.uploadCustomIcon |
| 19:34:23.291 | GET إلى ملف .PHP مرفوع مع أمر حسابي مسيطر عليه |
| 19:34:23.329 | GET إلى ملف .pHp مرفوع مع أمر حسابي مسيطر عليه |
| 19:34:23.361 | GET إلى ملف .Php مرفوع مع أمر حسابي مسيطر عليه |
| 19:34:23.398 | GET إلى القطعة النهائية .PHP مع أمر حسابي مسيطر عليه |
| 19:34:23.411 | نفذ PoC العام الأمر id عبر قطعة PHP المرفوعة وتلقى HTTP 200 |
| 19:35:05 | طلب whoami يدوي أعاد www-data |
| 19:35:27 | نجح اتصال TCP لمرة واحدة إلى 172.20.10.2:4444 |
| 19:35:59 | بدأ طلب HTTP اتصال TCP عكسي إلى 172.20.10.2:4444 |
| 19:36:22-19:36:31 | أكدت whoami وuname وid وpwd سياق التنفيذ |
| 19:37:13 | أعاد cd root رسالة Permission denied |
| 19:37:21-19:37:28 | فشلت محاولة su - مع Authentication failure |
| 19:39:25 | توقف جمع المراجعة وتم حزم القطع الأثرية |