文章目录
前言
概述
XSS漏洞一直被评估为web漏洞中危害较大的漏洞,在OWASP TOP10的排名中一直属于前三的地位。
XSS是一种发生在Web前端的漏洞没所以其危害对象也主要是前端用户。
XSS漏洞可以用来进行钓鱼攻击、前端js挖矿、用户cookie获取。甚至可以集合浏览器自身的漏洞对用户主机进行远程控制等。
常见类型
危害:存储型>反射型>DOM型
反射型:交互的数据一般不会被存放在数据库里面,一次性,所见即所得,一般出现在查询类页面等。
存储型:交互的数据会被存放在数据库里面,永久性存储,一般出现在留言板、注册等页面。
DOM型:不与后台服务器产生数据交互,是一种通过DOM操作前端代码输出的时候产生的问题,一次性也属于反射型。
形成原因
形成XSS漏洞的主要原因是程序对输入输出的控制不够严格,导致“精心构造”的脚本输入后,在输到前端时被浏览器当做有效代码解析执行从而产生危害。
一、反射型XSS
GET方式的XSS漏洞更加容易被利用,一般利用的方式是将带有跨站脚本的URL伪装后发送给目标
而POST由于是以表单方式提交,无法直接使用URL进行攻击,如何利用?
反射型XSS(get)
输入‘“<>6666
查看页面源代码可以发现我们输入的内容直接出现在了源代码当中:
那么,就可以尝试输入一个js脚本,比如一个简单的弹窗 :
<script>alert('xss')</script>
由于输入框长度的限制,首先需要将长度改大一些,将20改为200
提交后出现:
反射型XSS(post)
略
二、存储型XSS
存储型XSS和反射型XSS形成的原因一样,不同的是存储型XSS下攻击者可以将脚本注入到后台存储起来,构成更加持久的危害,因此存储型XSS也称“永久型”XSS。
留言,并查看源代码:
同样是显示在一个p标签中,所以可以在留言框中输入一个弹窗
<script>alert('xss')</script>
提交后出现弹窗:
与反射型XSS不同的是,每次刷新弹窗都会出现,因为已经存储在了后台。
三、DOM型XSS
可以把DOM理解为一个一个访问HTML的标准编程接口
DOM型xss
查看源代码:
构造闭合:
从<a href='"+str+"'>what do you see?</a>入手,
构造闭合为:<a href='#' onclick="alert(111)">'>what do you see?</a>
也就是,把“+str+”改为#' onclick="alert(111)">
将改后的内容输入到查询框,再次点击clickme和what do you see:
DOM型xss-x
查看源码,dom的输入是从浏览器获取,操作同上。