
CVE-2023-4771 PoC CKEditor 4 Cross-Site-Scripting (XSS)-Schwachstelle im AJAX-Beispiel
CVE-2023-4771 PoC CKEditor 4 Cross-Site-Scripting (XSS) Sicherheitslücke im AJAX-Beispiel
Dieses Dokument beschreibt, wie eine XSS-Sicherheitslücke (CVE-2023-4771) unter Verwendung von CKEditor ausgeführt wird. Stellen Sie sicher, dass die folgenden Schritte mit größter Vorsicht durchgeführt werden:
Voraussetzungen
• Zugriff auf eine CKEditor-Instanz.
Datei: ckeditor/samples/old/ajax.html.
Schritte zur Durchführung der XSS-Sicherheitslücke:
CKEditor-Beispielseite besuchen Öffnen Sie Ihren bevorzugten Browser und rufen Sie die folgende URL auf: /ckeditor/samples/old/ajax.html. Diese URL sollte auf die CKEditor-Beispielseite verweisen, die sich in der getesteten Webanwendung befindet.
Eine neue Editorinstanz erstellen: Gehen Sie zur CKEditor-Beispielseite und suchen Sie dort ein beliebiges Steuerelement – Schaltfläche, Link usw. – das es Ihnen ermöglicht, eine neue Editorinstanz zu erstellen; klicken Sie darauf. Die CKEditor-Instanz auf der Seite sollte aktiviert werden.
In den Quellmodus wechseln: Wenn die CKEditor-Instanz bereit ist, suchen und klicken Sie die Schaltfläche „Source". Diese Schaltfläche ermöglicht es Ihnen, den rohen HTML-Inhalt im Editor zu steuern.
Den XSS-Payload injizieren: In der Quellansicht wird ein Textbereich bereitgestellt, in den Sie HTML-Code schreiben können. Im Folgenden ist ein Beispiel für einen solchen XSS-Payload, den Sie in diesen Textbereich injizieren möchten:
<p>Xss<!-- --!>-->Attack</p>
Der Payload ist eine Logik, die beim Rendern dieses HTML einen Alert auslösen soll.
Editorinstanz entfernen: Nach dem Einfügen des Payloads suchen Sie die Schaltfläche/den Link mit der Bezeichnung „Remove Editor" und klicken Sie darauf. Dadurch wird die CKEditor-Instanz deaktiviert und der Inhalt als HTML ausgegeben.
Den XSS-Alert beobachten: Wenn die Anwendung anfällig ist, erscheint nach dem Entfernen des Editors und dem Rendern des Inhalts als HTML ein Alert-Fenster mit der Meldung „XSS".
Anfälliger Code in ajax.html: document.getElementById( 'editorcontents' ).innerHTML = html = editor.getData();

Referenzen:
• https://cve.mitre.org/cgi-bin/cvename.cgi?name=2023-4771
Danksagung für den PoC: Sahar Shlichove
Danksagung für den CVE-Bericht: Rafael Pedrero