目录
XSS(跨站脚本攻击)
全称跨站脚本(Cross Site Scripting)是web中最为常见的漏洞之一,也是危害特别大的一种漏洞,一直高居漏洞排行榜的前几名。XSS漏洞的成因是没有对WEB前端的输入边界尽心严格的过滤,造成攻击者可以通过构造脚本语言使得输入的内容 被当成正常的HTML来执行(类似于SQL注入),从而产生危害。xss漏洞危害的对象主要是前端用户,并且可以用来进行钓鱼、前端js挖矿、用户cookie获取、甚至可以结合浏览器自身的漏洞对主机进行远程控制等
XSS(窃取cookie)攻击流程
攻击者发现存在xss漏洞的站点插入js脚本等待用户访问
用户访问xss页面,触发脚本,返回带有恶意js的页面
执行脚本,发送窃取数据(cookie)到攻击者
伪造用户登录,造成破坏
XSS漏洞常见类型
反射性
交互的数据一般不会被存在数据库里,一次性所见即所得,一般出现在查询类页面等
存储型
交互的数据被存储在数据库里,永久性存储,一般出现在留言板、注册等页面
DOM型
不与后台服务器产生数据交互,是一种通过DOM操作前端代码输出的时候产生的问题,一次性。也属于反射型的一种
XSS漏洞测试流程
1、在目标站点上找到输入点,比如查询接口、留言板等;
2、输入一组“特殊字符+唯一识别字符”,点击提交后,查看返回的源码,是都有对应的处理
3、通过搜索定位到唯一字符,结合唯一字符前后语法确认是否可以构造js的条件(构造闭合)
4、提交构造较稳的代码(以及各种绕过姿势),看是否可以成功执行,如果成功执行则说明存在xss漏洞
5、一般查询接口容易出现反射型XSS,留言板容易出现存储型XSS
6、由于后台可能存在过滤措施,构造的script可能会被过滤掉,而无法生效,或者环境限制了执行(浏览器)
7、通过变化不通的script,尝试绕过后台过滤机制
1、反射型XSS(get)
首先尝试输入代码, 发现只能输入20个字符
F12可以打开网页的代码
修改为更大的数值,然后继续输入代码:
<script>alert("www.baidu.com")</script>
直到弹窗出现,可以构造带有payload的URL来进行诱导用户的点击。