UEditor-结合XML文件上传导致的存储型XSS

1、在某学校的考试系统的 事故案例 -> 添加新文章
屏幕截图 2024-01-02 122052.jpg
2、由于该编辑器为UEditor,并根据版本信息可联系到历史爆出过漏洞,在.NET开发的版本可通过木马文件上传进行getshell;但又由于此处为php语言开发,只能上传xml文件,于是思路转变成xml文件上传+XSS组合拳的方式进行测试。
屏幕截图 2024-01-02 145627.jpg
3、先构造一个 test.jpg 作为附件上传,文章标题为test1,并保存
屏幕截图 2024-01-02 150525.jpg
这是一个XSL样式表,它指定了一个模板,匹配XML文档的根节点。在匹配到根节点时,它将生成一个HTML文档,在HTML文档中包含了一个JavaScript警告框,显示内容为"hacked by xsser"。这段代码具有XSS(跨站脚本)攻击的特征,因为它会在用户浏览器中执行恶意脚本。
屏幕截图 2024-01-02 122142.jpg
4、保存后访问上传的test.jpg路径
屏幕截图 2024-01-02 122235.jpg
屏幕截图 2024-01-02 122249.jpg
5、构建一个 test.xml 文件,并把刚才 test.jpg URL路径复制粘贴到 test.xml 文件中。
屏幕截图 2024-01-02 122318.jpg
这段XML文档的代码它指定了一个外部XSL样式表的URL地址。这段代码表明浏览器应该将XML文档与指定的XSL样式表进行关联,并使用该样式表对XML文档进行转换。

6、同样在新建一个标题为test2文章下作为附件上传并保存。
屏幕截图 2024-01-02 122359.jpg
7、访问test2文章的附件test.xml的路径
屏幕截图 2024-01-02 122427.jpg
8、成功触发XSS弹窗,且为存储型XSS
屏幕截图 2024-01-02 122441.jpg

修复建议:
1、使用最新版的Ueditor编辑器版本
2、使用白名单方式对上传文件的后缀名进行严格限制

posted @ 2024-03-21 17:56  GoxHam23  阅读(307)  评论(0编辑  收藏  举报