XSS漏洞分类
- XSS分类
- 反射型XSS
- 反射XSS案例
- 存储型XSS
- 存储型XSS实操
XSS分类
XSS根据类型和利用手法的不同,主要分为三大类:
- 反射型XSS
- 存储型XSS
- DOM型XSS
反射型XSS
反射型XSS又称为非持久型XSS,是现在最容易出现的一种XSS漏洞。用户在请求某条URL地址的时候,会携带一部分数据。当客户端进行访问某条链接时,攻击者可以将恶意代码植入到URL,如果服务端未对URL携带的参数做判断或者过滤处理,直接返回响应页面,那么XSS攻击代码就会一起被传输到用户的浏览器,从而触发反射型XSS。
比如,当用户进行搜索时,返口结果通常会包括用户原始的搜索内容,如果攻击者精心构造包含XSS恶意代码的链接,诱导用户点击并成功执行后,用户的信息就可以被窃取,甚至可以模拟用户进行一些操作。
特点:
- 非持久性
- 参数型脚本
- 反射型XSS的JS代码在Web应用的参数中,好比搜索框等地方
数据流的走向:
浏览器->后端->浏览器
反射XSS案例
初级:
输入多个数值之后,会发现输入什么就会输出什么,不过是在前面添加了hello,接下来植入恶意代码试一试:
发现可以正常显示弹窗,这个时候就可以继续探究内容了:
可以把其中的cookie值给拿出来了。
中级:
首先,我们再把初级的使一遍,查看是否有什么不一样:
可以发现,这里的alert(‘111’)直接被当作文本输出了,没有script标签的加持,alert也就只是一个字符串,所以这里猜想,是不是script标签被过滤掉了?如果是被过滤掉了,那该怎么办呢?大胆猜测在源码中过滤掉了script字符,那如果换成大写字母会不会有用?试一下:
既然是script被过滤掉,还有没有别的方法?嵌套试一试:
高级:
现在再进行输入的时候,发现只剩一个>,说明之前的都被过滤掉了。
再试试大小写或者嵌套:
发现依然被过滤掉了,这样的话就不能想着再用script标签进行报错显示了,换一种比较新的方法:
< img src=‘XXX.jpg’ οnerrοr=alert(‘666’)>,表示图片是什么图片,如果找不到,则会执行onerror后面的部分。
存储型XSS
存储型XSS又叫持久型XSS。一般而言,它是三种XSS里危害最大的一种。此类型的XSS漏洞是由于恶意攻击代码被持久化保存到服务器上,然后被显示到HTML页面之中。这类漏洞经常出现在用户评论的页面,攻击者精心构造XSS代码,保存到数据库中,当其他用户再次访问这个页面时,就会触发并执行恶意的XSS代码,从而窃取用户的敏感信息。
特点:
1、持久性跨站脚本
2、持久性体现在Js代码不是在某个参数(变量)中,而是写进数据库或文件等可以永久保存数据的介质中,如留言板等地方
数据流量走向:浏览器–>后端>数据库->后端–>浏览器
存储型XSS实操
初级:
中级:
内容不行,尝试从标题下手,换一换内容:
这里可以通过检查页面,然后进行修改name这里的长度:
结果发现还是没有用,script标签被过滤掉了,那就换一下大招,使用img标签进行尝试:
结果发现,使用img标签,就可以成功了。
高级: