XSS 跨站脚本
一、 什么是XSS
XSS(Cross-site Scripting),中文名跨站脚本攻击。其原理是攻击者利用浏览器执行前端代码(HTML、CSS、JavaScript)的特性,将恶意的JavaScript代码插入到页面中,当用户浏览页面时,导致恶意代码被执行。
二、XSS的危害
1)、窃取用户cookie资料,冒充用户身份进入网站
2)、劫持用户会话,执行任意操作
3)、刷流量,执行弹窗广告
4)、盗取各种用户账号
5)、传播蠕虫病毒
6)、攻击者能在一定限度内记录用户的键盘输入
三、XSS的分类
1、反射型XSS
也称为非持久型的XSS,客户端访问某条链接时,可以将恶意代码植入URL,若服务器未对URL参数进行全面的处理、过滤,那么将造成XSS漏洞。参数型脚本在搜索框等地方。
数据走向:浏览器 —— 后端 —— 浏览器
2、存储型XSS
称为持久型XSS,可以将输入的代码持久的保存到服务器上,显示到HTML页面中,经常出现在网站的评论、弹幕、建议栏、博客发布界面等页面。
数据走向:浏览器 —— 后端 —— 数据库 —— 后端 —— 浏览器
3、DOM型XSS
基于文档对象模型(Document Object model)的漏洞
四、XSS Payload构造
原文链接:https://blog.csdn.net/Fighting_hawk/article/details/123095511
1、利用<>构造HTML标签和标签
<script> alert (/xss/) </script>
<script> confirm ('xss') </script>
<script> prompt("xss") </script>
2、利用HTML标签的属性值(伪协议)
例如:
//利用a标签的javascript:伪协议
<a href="javascript :alert(/xss/)"> touch me! </a>
3、利用事件
Windows事件(对Windows对象触发的事件)
Form事件(HTML表单内的动作触发器事件)
Keyboard 事件(键盘按键)
Mouse事假(由鼠标或类似用户动作触发的事件)
Media事件(由多媒体触发的事件)
<img src='./smile.jpg' onmouseover='alert(/xss/)'> //该标签会引入一张图片,然后鼠标悬停在图片上的时候,会触发XSS代码。
<img src='./smile.jpg' onerror='alert(/xss/)'> //onerror会在文档载入失败时触发XSS,比如下一个语句
<img src='#' onerror='alert(/xss/)'> //与上一个语句相比,将文件路径改成#,一定载入失败,触发XSS
<input type="text" onkeydown="alert(/xss/)">