
CVE-2023-4771 PoC CKEditor 4 ثغرة البرمجة النصية عبر المواقع (XSS) في عينة AJAX
CVE-2023-4771 PoC CKEditor 4 ثغرة البرمجة النصية عبر المواقع (XSS) في عينة AJAX
يصف هذا المستند كيفية تنفيذ ثغرة XSS (CVE-2023-4771) باستخدام CKEditor. تأكد من القيام بما يلي بحذر شديد للمتابعة:
المتطلبات الأساسية
• الوصول إلى مثيل CKEditor.
الملف: ckeditor/samples/old/ajax.html.
خطوات تنفيذ ثغرة XSS:
زيارة صفحة عينة CKEditor افتح متصفحك المفضل وقم بزيارة عنوان URL هذا: /ckeditor/samples/old/ajax.html. يجب أن يشير عنوان URL هذا إلى صفحة عينة CKEditor الموجودة داخل تطبيق الويب قيد الاختبار.
إنشاء مثيل محرر جديد: اذهب إلى صفحة عينة CKEditor وابحث عن أي عنصر تحكم – زر، رابط، إلخ – يسمح لك بإنشاء مثيل محرر جديد؛ انقر عليه. يجب تنشيط مثيل CKEditor على الصفحة.
التبديل إلى وضع المصدر: إذا كان مثيل CKEditor جاهزاً، فابحث عن زر "المصدر" وانقر عليه. يسمح لك هذا الزر بالتحكم في محتوى HTML الخام في المحرر.
حقن حمولة XSS: في عرض المصدر، توجد مساحة نصية يمكنك كتابة كود HTML فيها. فيما يلي مثال على حمولة XSS قد ترغب في حقنها في هذه المساحة النصية:
<p>Xss<!-- --!>-->Attack</p>
المنطق في هذه الحمولة هو أنه يجب أن يظهر تنبيه عند عرض هذا HTML.
إزالة مثيل المحرر: بعد لصق الحمولة، ابحث عن الزر/الرابط المسمى "إزالة المحرر" وانقر عليه. سيؤدي ذلك إلى إيقاف تشغيل مثيل CKEditor وعرض المحتوى بتنسيق HTML.
ملاحظة تنبيه XSS: إذا كان التطبيق ضعيفاً، بعد إزالة المحرر وعرض المحتوى بتنسيق HTML، سيظهر مربع تنبيه بالرسالة "XSS".
الكود الضعيف في ajax.html: document.getElementById( 'editorcontents' ).innerHTML = html = editor.getData();

المراجع:
• https://cve.mitre.org/cgi-bin/cvename.cgi?name=2023-4771
الشكر لإثبات المفهوم: Sahar Shlichove
الشكر لتقرير CVE: Rafael Pedrero