CVE-2023-4771 PoC CKEditor 4 AJAX 示例中的跨站脚本(XSS)漏洞
本文档介绍如何使用 CKEditor 利用此 XSS 漏洞(CVE-2023-4771)。 请务必极其谨慎地按以下步骤操作:
先决条件
• 拥有对 CKEditor 实例的访问权限。
文件:ckeditor/samples/old/ajax.html。
利用 XSS 漏洞的步骤:
访问 CKEditor 示例页面 打开你常用的浏览器,访问此 URL:/ckeditor/samples/old/ajax.html。该 URL 应指向被测 Web 应用程序中的 CKEditor 示例页面。
创建新的编辑器实例: 转到 CKEditor 示例页面,找到任何一个控件(按钮、链接等),该控件允许你创建新的编辑器实例并点击它。页面上的 CKEditor 实例应被激活。
切换到源代码模式: 如果 CKEditor 实例已就绪,查找并点击 "Source" 按钮。该按钮允许你控制编辑器中的原始 HTML 内容。
注入 XSS 载荷: 在源代码视图中,会有一个文本区域,你可以在其中编写 HTML 代码。下面是你想要注入到该文本区域中的此类 XSS 载荷的一个示例:
<p>Xss<!-- --!>-->Attack</p>
该载荷的逻辑应在渲染此 HTML 时触发一个 alert 弹窗。
移除编辑器实例: 粘贴载荷后,找到标有 "Remove Editor" 的按钮/链接并点击它。这将关闭 CKEditor 实例并以 HTML 形式输出内容。
观察 XSS 弹窗: 如果应用程序存在漏洞,则在移除编辑器并渲染 HTML 内容后,会出现一个内容为 "XSS" 的警示弹窗。
ajax.html 中的易受攻击代码:document.getElementById( 'editorcontents' ).innerHTML = html = editor.getData();

参考资料:
• https://cve.mitre.org/cgi-bin/cvename.cgi?name=2023-4771
PoC 贡献者:Sahar Shlichove
CVE 报告贡献者:Rafael Pedrero