
CVE-2023-4771 PoC CKEditor 4: vulnerabilidad de Cross-site scripting (XSS) en la muestra AJAX
PoC CVE-2023-4771 Vulnerabilidad de Cross-site scripting (XSS) en CKEditor 4 en el ejemplo AJAX
Este documento describe cómo realizar una vulnerabilidad XSS (CVE-2023-4771) usando CKEditor. Asegúrese de que todo lo siguiente se haga con mucha precaución para llevarlo a cabo:
Requisito previo
• Tener acceso a una instancia de CKEditor.
Archivo: ckeditor/samples/old/ajax.html.
Pasos para realizar la vulnerabilidad XSS:
Visitar la página de ejemplo de CKEditor Abra su navegador favorito y visite esta URL: /ckeditor/samples/old/ajax.html. Esta URL debe apuntar a la página de ejemplo de CKEditor, que reside en la aplicación web bajo prueba.
Crear una nueva instancia del editor: Vaya a la página de ejemplo de CKEditor y busque allí cualquier control (botón, enlace, etc.) que le permita crear una nueva instancia del editor; haga clic en él. La instancia de CKEditor en la página debería activarse.
Cambiar al modo fuente: Si la instancia de CKEditor está lista, busque y haga clic en el botón "Source". Este botón le permite controlar el contenido HTML sin procesar en el editor.
Inyectar la carga útil XSS: En la vista de fuente, se muestra un área de texto donde puede escribir código HTML. El siguiente es un ejemplo de dicha carga útil XSS que le gustaría inyectar en esta área de texto:
<p>Xss<!-- --!>-->Attack</p>
La carga útil es una lógica que debería mostrar una alerta al procesar este HTML.
Eliminar la instancia del editor: Después de pegar la carga útil, busque el botón/enlace titulado "Remove Editor" y haga clic en él. Esto desactivará la instancia de CKEditor y generará el contenido en HTML.
Observar la alerta XSS: Si la aplicación es vulnerable, después de que se elimine el editor y se procese el contenido en HTML, aparecerá un cuadro de alerta con el mensaje "XSS".
Código vulnerable en ajax.html: document.getElementById( 'editorcontents' ).innerHTML = html = editor.getData();

Referencias:
• https://cve.mitre.org/cgi-bin/cvename.cgi?name=2023-4771
Crédito por el PoC: Sahar Shlichove
Crédito por el informe del CVE: Rafael Pedrero