一 什么是xss
1 XSS(跨站脚本)概述
Cross-Site Scripting 简称为“CSS”,为避免与前端叠成样式表的缩写"CSS"冲突,故又称XSS。一般XSS可以分为如下几种常见类型:
1.反射性XSS;
2.存储型XSS;
3.DOM型XSS;
XSS漏洞一直被评估为web漏洞中危害较大的漏洞,在OWASP TOP10的排名中一直属于前三的江湖地位。
XSS是一种发生在前端浏览器端的漏洞,所以其危害的对象也是前端用户。
形成XSS漏洞的主要原因是程序对输入和输出没有做合适的处理,导致“精心构造”的字符输出在前端时被浏览器当作有效代码解析执行从而产生危害。
因此在XSS漏洞的防范上,一般会采用“对输入进行过滤”和“输出进行转义”的方式进行处理:
输入过滤:对输入进行过滤,不允许可能导致XSS攻击的字符输入;
输出转义:根据输出点的位置对输出到前端的内容进行适当转义;
2 xss攻击流程
3 xss漏洞常见类型
二 反射型xss
1 get型
通过开发者工具修改源码,改变输入长度限制
输入一段js语言
尝试运行
我输入的是<script>alert('xss')</script>
结果如上。
漏洞原因
输入数据到输出数据在后台代码没有处理(没有防xss处理)。
get型将代码储存在url中,用户点击这个链接就会执行,我们可以通过编写这个做想做的事
2 post型
三 存储型xss
同样的,没有做在输出前的处理。
这个代码会一直储存才代码中,后来访问也会造成危害
我使用的是<script>alert('xss')</script>
结果如下
注意这个会一直保留!!!
四 DOM型XSS
1 什么是DOM
就我理解 ,dom是用来使html由静到动的一个渠道。
DOM是纯前端输出不涉及后台。
在页面代码中进行操作。
输入输出没有转译操作。
2 输入一个payload内容使的页面可以跳转。
将这一段代码进行利用
使你输入的东西可以以代码的形式执行
我输入的是一个弹窗形式
#'οnclick="alert(666)">
代码形成闭合
结果如下
3 dom型xss_s
这个和XSS区别是这个类型的输入通过浏览器url获取
与xss闭合相同1
这个比XSS有攻击性。
用户登录你加入恶意代码的URLjiu会执行