学习来源:
靶场地址:
一、概述
- XSS 名为跨站脚本漏洞,XSS 是指恶意攻击者利用网站没有对用户提交数据进行转义处理或者过滤不足的缺点,进而添加一些代码,嵌入到web页面中去。使别的用户访问都会执行相应的嵌入代码;
- XSS 是一种发生在 Web 前端的漏洞,所以其危害的对象也主要是前端用户;
- XSS 漏洞可以用来进行钓鱼攻击、前端js挖矿、用户 Cookie 获取等。
二. XSS 漏洞攻击流程举例(窃取 Cookie ):
三. XSS 漏洞常见分类
按照危害程度 : 存储型 > 反射型 > DOM 型
- 反射型:交互的数据一般不会被存在在数据库里面,一次性,一般出现在查询页面等。(与服务器交互)
- 存储型:交互的数据会被存在在数据库里面,永久性存储,一般出现在留言板、注册页面等。(与服务器交互)
- DOM 型:不与后台服务器产生数据交互,通过 DOM 操作前端代码输出的时候产生的问题,也属于反射型。
四. XSS 漏洞形成的原因
形成 XSS 漏洞的主要原因是程序对输入和输出的控制不够严格,导致“精心构造”的脚本代码输入 后,在输出到前端时被浏览器当作有效代码解析执行从而产生危害。
五. XSS 漏洞测试流程
- 在目标站点上找到输入点,比如查询接口,留言板等;
- 输入一组“特殊字符 + 唯一识别字符”,点提交后,查看返回的源码,看是否有相应的处理;
- 通过搜索定位唯一字符,结合唯一字符前后语法确认是否可以构造 js 的条件(构造闭合);
- 提交构造的脚本代码(以及绕过姿势),看是否成功执行,如果成功说明存在 XSS 。
- 一般查询接口容易出现反射型 XSS ,留言板容易出现存储型 XSS 。
- 由于后台可能存在过滤措施,构造的 script 可能会被过滤掉,而无法生效,或者限制了执行(浏览器)。
- 通过变化不同的 script ,尝试绕过后台过滤机制。