
CVE-2023-4771 PoC CKEditor 4 Cross-site scripting (XSS) vulnerability in AJAX sample
CVE-2023-4771 PoC CKEditor 4 Vulnerabilidade de Cross-site scripting (XSS) no sample AJAX
Este documento descreve como executar uma vulnerabilidade XSS (CVE-2023-4771) usando CKEditor. Certifique-se de que o seguinte seja feito com muita cautela para prosseguir:
Pré-requisito
• Ter acesso a uma instância do CKEditor.
Ficheiro: ckeditor/samples/old/ajax.html.
Passos para realizar a Vulnerabilidade XSS:
Visitar a Página de Sample do CKEditor Abra o seu navegador favorito e visite este URL: /ckeditor/samples/old/ajax.html. Este URL deve apontar para a página de sample do CKEditor, que reside na aplicação web testada.
Criar uma Nova Instância do Editor: Vá para a página de sample do CKEditor e encontre lá qualquer controlo – botão, link, etc. – que permita criar uma nova instância do editor; clique nele. A instância do CKEditor na página deve ser ativada.
Mudar para o Modo de Origem: Quando a instância do CKEditor estiver pronta, encontre e clique no botão "Source". Este botão permite-lhe controlar o conteúdo HTML bruto no editor.
Injetar o Payload XSS: Na visualização de origem, é fornecida uma textarea onde pode escrever código HTML. O seguinte é um exemplo de tal payload XSS que gostaria de injetar nesta textarea:
<p>Xss<!-- --!>-->Attack</p>
O payload é uma lógica que deve levantar um alerta ao renderizar este HTML.
Remover a Instância do Editor: Após colar o payload, procure pelo botão/link intitulado "Remove Editor" e clique nele. Isto irá desligar a instância do CKEditor e exibir o conteúdo em HTML.
Observar o Alerta XSS: Se a aplicação for vulnerável, após remover o editor e renderizar o conteúdo em HTML, uma caixa de alerta com a mensagem "XSS" aparecerá.
Código vulnerável em ajax.html: document.getElementById( 'editorcontents' ).innerHTML = html = editor.getData();

Referências:
• https://cve.mitre.org/cgi-bin/cvename.cgi?name=2023-4771
Crédito pelo PoC: Sahar Shlichove
Crédito pelo relatório CVE: Rafael Pedrero