网站首页 > 开源技术 正文
前言
UEditor是由百度web前端研发部开发的所见即所得富文本web编辑器,具有轻量,可定制,注重用户体验等特点。UEditor存在一个XSS漏洞,编辑器在定义过滤规则的时候不严和读取内容的时候的绕过导致了该漏洞,此漏洞已经上报,由于技术略菜,有分析不到位的还请多多见谅。
漏洞成因分析
漏洞文件产生在前端配置文件ueditor.config.js:
以下为纯文本粘贴为true时的过滤规则,对一些危险的标签没有做过滤,怪不得好多二次开发的。
//纯文本粘贴模式下的过滤规则 //'filterTxtRules' : function(){ // function transP(node){ // node.tagName = 'p'; // node.setStyle(); // } // return { // //直接删除及其字节点内容 // '-' : 'script style object iframe embed input select', // 'p': {$:{}}, // 'br':{$:{}}, // 'div':{'#39;:{}}, // 'li':{'#39;:{}}, // 'caption':transP, // 'th':transP, // 'tr':transP, // 'h1':transP,'h2':transP,'h3':transP,'h4':transP,'h5':transP,'h6':transP, // 'td':function(node){ // //没有内容的td直接删掉 // var txt = !!node.innerText(); // if(txt){ // node.parentNode.insertAfter(UE.uNode.createText(' '),node); // } // node.parentNode.removeChild(node,node.innerText()) // } // } //}()
如下图,在官方文档里也进行了说明,通过getContent和setContent方法用<p>标签读取编辑器内容
#通getContent和setContent方法可以设置和读取编辑器的内容 var ue = UE.getEditor();//对编辑器的操作最好在编辑器ready之后再做ue.ready(function(){ //设置编辑器的内容 ue.setContent('hello'); //获取html内容,返回: <p>hello</p> var html = ue.getContent(); //获取纯文本内容,返回: hello var txt = ue.getContentTxt();});
HTML中的p标签为段落标签,目前所有主流浏览器都支持<p>标签。
从编辑器里的左上角显示html可以看出,是带有<p>标签的,所以在标签内写入payload是不被执行的
?
?
?
如下图,在删除掉<p>标签后写入payload可触发XSS漏洞
?
?
如果没有提交或者保存的功能,那么无法与数据库交互形成存储XSS,但是依然可多次点击左上角html按钮触发xss
?
漏洞利用
首先安装部署环境:https://github.com/fex-team/ueditor/releases/tag/v1.4.3.3
存储型XSS需要写入后端数据库,这里要把编辑器部署到一个可与数据库交互的环境中。
首先我们打开编辑器输入正常的文本:
?
?
抓包并将<p>标签以及原本的文本删除
?
插入payload:
%3Cp%3E1111111"><ImG sRc=1 OnErRoR=prompt(1)>%3Cbr%2F%3E%3C%2Fp%3E
?
成功触发存储型XSS漏洞
?
?
经笔者调查在互联网上存在着许多ueditor编辑器在线展示的网站,这些大都存在没有与后端交互的反射型XSS,但是如果存在与后端数据库交互的功能譬如一些写作平台即可形成存储型XSS漏洞,结合一些xss平台,或者再和其他漏洞配合形成组合拳,威力也不容小藐。
防御措施
1、修改 xss过滤白名单 配置文件ueditor.config.js,增加白名单过滤,比如对一些非法的参数和标签,像 <>、,",',img标签的onerror属性,script标签等进行自动转义,或者是强制的拦截并提示。
2、对输入的数据也进行html转义,使其不会识别为可执行脚本。
- 上一篇: 一起主页被黑跳转博彩网站的安全入侵事件!
- 下一篇: 利用百度编辑器ueditor实现代码高亮
猜你喜欢
- 2024-09-28 织梦 安装UEditor编辑器(织梦安装出现dir)
- 2024-09-28 springboot整合百度富文本 UEditor
- 2024-09-28 漫谈ueditor编辑器漏洞实战中利用
- 2024-09-28 前端视角漫谈百度ueditor编辑器前后端分离配置
- 2024-09-28 Ueditor二次编辑word(doc和docx格式),SpringBoot后端
- 2024-09-28 部署到服务器UEditor乱码,layUI乱码,layer乱码「非编码造成」
- 2024-09-28 百度编辑器ueditor,如何在源码模式与富文本模式相互切换
- 2024-09-25 Python项目中用富文本编辑器展示精美网页
- 2024-09-25 UEditor二次开发之为行内代码添加code标签
- 2024-09-25 百度编辑器ueditor从word粘贴图片重复分析
你 发表评论:
欢迎- 03-29蓝牙设备配对失败的系统性解决方案与技术解析
- 03-296MB PDF竟能运行Linux?这名高中生在PDF里玩DOOM后,再“整活”!
- 03-29平头哥玄铁RISC-V斩获MLPerf四项第一
- 03-29国产MCU先楫HPM6200系列发布:RISC-V架构,频率达600MHz
- 03-29switch怎么连接电视详细教程 switch oled快速连接电脑电视
- 03-29Switch系统更新至10.0.0版后:增加了控制器重新映射等功能
- 03-29Switch版《毁灭战士:永恒》过场动画仅20帧 开发商:画质高是这样的
- 03-29任天堂意外确认Switch 2的"C键"存在
- 最近发表
-
- 蓝牙设备配对失败的系统性解决方案与技术解析
- 6MB PDF竟能运行Linux?这名高中生在PDF里玩DOOM后,再“整活”!
- 平头哥玄铁RISC-V斩获MLPerf四项第一
- 国产MCU先楫HPM6200系列发布:RISC-V架构,频率达600MHz
- switch怎么连接电视详细教程 switch oled快速连接电脑电视
- Switch系统更新至10.0.0版后:增加了控制器重新映射等功能
- Switch版《毁灭战士:永恒》过场动画仅20帧 开发商:画质高是这样的
- 任天堂意外确认Switch 2的"C键"存在
- Switch NSP中文 毛茸茸的爪子Claws of Furry
- 三星展示可折叠手持设备,基本上是一个可以对折的Switch
- 标签列表
-
- jdk (81)
- putty (66)
- rufus (78)
- 内网穿透 (89)
- okhttp (70)
- powertoys (74)
- windowsterminal (81)
- netcat (65)
- ghostscript (65)
- veracrypt (65)
- asp.netcore (70)
- wrk (67)
- aspose.words (80)
- itk (80)
- ajaxfileupload.js (66)
- sqlhelper (67)
- express.js (67)
- phpmailer (67)
- xjar (70)
- redisclient (78)
- wakeonlan (66)
- tinygo (85)
- startbbs (72)
- webftp (82)
- vsvim (79)
本文暂时没有评论,来添加一个吧(●'◡'●)