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