转自:茄子
富 文本编辑器是一个开放式的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: dynsrc= 黑客可能利用如下协议: 脚本伪协议 vbscript: 文件类协议 ms-its: 第三方协议 firefoxurl: --------------------------------- 如: 必须判断属性的用的啥协议,给个http:就好了. 加 ASCII格式 --------------------------------- 必须判断属性的值&转换成 & style属性可以和任意字符的标签结合,因此不是 behavior需指定域内也就是绝对路径的HTC文件,危害不大. expression可以构造不同的全角字符和注释符来扰乱过滤规则. 如: --------------------------------- 必须判断style属性的值, :( ~这里正则超级难写,实在不过滤的话,列个白名单,只允许某些值. --------------------------------- 还是判断协议头之类吧. 转义字符\ 加 16进制格式 搞个正则过滤\+数字的字符串. 黑客可以利用类似事件触发脚本: onload 类似这类 如: 情况都给过滤吧. FLASH的Action Script比较危险,可以和用户做交互式的访问. 可以设置Flash对象的AllowScriptAccess参数为never来解决问题。 AllowScriptAccess 参数有三个可选值,always、never 和 sameDomain never 禁止运行对外脚本 如
二.针对HTML属性值的协议攻击.
href=
lowsrc=
src=
background=
value=
action=
bgsound=
javascript:
mhtml:
data:
mocha:
livescript:
类似这类
三.针对普通HTML属性值的编码,黑客可利用HTML特性将属性值做编码绕过过滤.
类似这类
四.css样式style属性问题.
类似这类
五.css样式style属性其他问题.
类似这类
六.针对普通style属性值的编码,黑客可利用HTML特性将属性值做编码绕过过滤.
---------------------------------
类似这类
七.针对正常标签组合事件触发脚本的问题.
onerror
onmousemove
onmouseout
onmouseover
onmouseup
onmouseenter
onmouseleave
onmousewheel
onscroll
....................................
八.第三方媒体文件,崭只针对FLASH与WEB交互的问题.
always 可以运行对外脚本
sameDomain 只允许同一域下的Flash运行对外脚本