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、使用白名单方式对上传文件的后缀名进行严格限制
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· 单线程的Redis速度为什么快?
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码