分类
- 反射型
- 存储型
- DOM型
- UXSS
- flash型
说明:
1. 何为UXSS
通用跨站脚本(Universal Cross-Site ing)
UXSS主要是利用浏览器及插件的漏洞(比如同源策略绕过,导致A站的脚本可以访问B站的各种私有属性,例如cookIE等)来构造跨站条件,以执行恶意代码。它与普通的XSS的不同点就在于漏洞对象及受害范围的差异上。
2. 反射型、存储型、DOM型的区别
存储型xss:发送一次xss代码请求,以后此页面的返回包里面都会有xss代码
反射型xss:发送一次xss代码请求,只能在当前返回的数据包中发现xss代码
DOM型xss:发送一次xss代码请求,返回包里面没有xss代码,只有在动态运行或调查网页的dom树时才能观测到dom xss。
危害
1、盗取用户cookie,结合其他攻击面造成危害更大的攻击
2、钓鱼攻击
3、窃取用户的信息(识别浏览器的信息,识别安装的软件信息)
4、ddos蠕虫攻击
5、蠕虫式挂马攻击、刷广告、刷浏量、破坏网上数据
xss检测
一、手工检测
- 检测输入点
(使用无害的输入判断输入点是否可以成功把数据注入到页面) - 潜在注入点检测
- 生成Payload
- Payload攻击验证
常用的payload:
(1) <script> alert('xss')</script>
(2) http://localhost/x.html#<script> alert('xss')</script>
(3) <script src=http://www.qq.com></script>
(4) “><script>alert(1)</script>
(5) “><img src=x onerror=alert(“xss”)>
(6) "><iframe src=javascript:alert(1)></iframe>
(7) </script>
二、工具检测
三、防御策略
- 设置HttpOnly避免cookie劫持;
- 过滤危险标签,如
<script>
,<img>
,<a>
等; - 编码,浏览器解析html和js编码不同,要根据上下文场景对变量编码(html entity编码、html attribute编码、url编码和校验、CSS编码);
xss防御速查表