
ثغرة البرمجة النصية عبر المواقع (XSS) في CMSimple_XH
نظرة عامة
تم تحديد ثغرة برمجة نصية عبر المواقع (XSS) في CMSimple_XH الإصدار 1.7.6. تسمح هذه الثغرة للمستخدمين المصرح لهم برفع ملفات SVG تحتوي على كود JavaScript ضار. تعود المشكلة إلى عدم كفاية التحقق والتنقية لملفات SVG المرفوعة ضمن وظيفة رفع الملفات في التطبيق.
تفاصيل الثغرة
الوصف
توجد الثغرة بسبب فشل التطبيق في التحقق من ملفات SVG التي يرفعها المستخدمون وتنقيتها بشكل صحيح. يمكن للمهاجم استغلال هذا الخلل عن طريق رفع ملف SVG مصمم خصيصًا يحتوي على كود JavaScript ضار. عندما يصل مستخدمون آخرون إلى ملف SVG المرفوع، يتم تنفيذ كود JavaScript المحقون داخل متصفحاتهم في سياق تطبيق CMSimple_XH. يمكن أن يؤدي هذا إلى هجمات XSS متنوعة.
التأثير
يمكن أن يمكّن الاستغلال الناجح لهذه الثغرة المهاجم من:
إثبات المفهوم
مثال على كود SVG ضار يعرض تنبيهًا يحتوي على ملفات تعريف الارتباط الخاصة بالمستند:
<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" baseProfile="full" xmlns="http://www.w3.org/2000/svg">
<polygon id="triangle" points="0,0 0,50 50,0" fill="#009900" stroke="#004400"/>
<script type="text/javascript">
alert(document.cookie);
</script>
</svg>
خطوات إعادة الإنتاج
لقطات الشاشة

شكر وتقدير: تم اكتشاف هذه الثغرة والإبلاغ عنها بواسطة Suraj Theekshana.