跨站脚本漏洞-目录
? 跨站脚本漏洞概述
? 跨站脚本漏洞类型及测试流程
? 反射型XSS(get&post)演示和原理分析
? 存储型XSS演示和与原理分析
? Dom型XSS演示和原理分析
? XSS的危害-获取cookie的原理和实验演示
? XSS危害-XSS进行钓鱼的原理和实验演示
? XSS危害-XSS获取键盘记录原理和实验演示
? XSS盲打演示和原理分析
前端千遍万化,导致xss会出现很多千奇百怪的场景
? XSS的过滤和绕过(filter&htmlspecialchars)
? XSS输出在href和js中的案例分析
在不同的输出点所形成的问题,因为xss输出的点不一样的话,修复的方案会有所区别
? XSS常见防范措施
学完这些东西,然后在pikachu上面练一遍,xss这个漏洞,对我们来说,应该是没有什么大问题了
跨站脚本漏洞概述
? XSS漏洞一直被评估为web漏洞中危害较大的漏洞,在OWASP TOP10的排名中一直属于前三的江湖地位。
一种常见的漏洞
? XSS是一种发生在Web前端的漏洞,所以其危害的对象也主要是前端用户。
? XSS漏洞可以用来进行钓鱼攻击、前端js挖矿、用户cookie获取。甚至可以结合浏览器自身的漏洞对用户主机进行远程控制等
所有一些能在前端代码,用js实现的功能,都可以通过xss实现
跨站脚本漏洞概述-XSS(窃取cookie)攻击流程
根据xss漏洞的类型,攻击者可以将恶意的js代码,通过这个xss漏洞,插入到这个论坛的某个页面当中,然后欺骗用户去访问,或者等待用户来访问
这个是xss常见的攻击流程图
跨站脚本漏洞常见类型
危害:存储型>反射型>DOM型
? 反射型
交互的数据一般不会被存在数据库里面,一次性,所见即所得,一般出现在查询类页面等。
? 存储型
交互的数据会被存在数据库里面,永久性存储,一般出现在留言板,注册等页面。
从而造成持久性的伤害
? DOM型
不与后台服务器产生数据交互,是一种通过DOM操作前端代码输出的时候产生的问题,一次性也属于反射型。
前端的概念,DOM型是前端的一种接口,这种情况下,用户输入的数据直接通过DOM进行相关的操作,然后输出
xss漏洞形成的原因
形成XSS漏洞的主要原因是程序对输入和输出的控制不够严格,导致“精心构造”的脚本输入后,在输到前端时被浏览器当作有效代码解析执行从而产生危害。
程序没有对输出进行转义
我们一般在防止xss漏洞的时候,我们会从输入输出这两个维度去做对应的控制
跨站脚本漏洞测试流程
① 在目标站点上找到输入点,比如查询接口,留言板等;
一些输入的接口
② 输入一组“特殊字符+唯一识别字符”,点击提交后,查看返回的源码,是否有做对应的处理;
特殊字符:<、'、“等等
③ 通过搜索定位到唯一字符,结合唯一字符前后语法确认是否可以构造执行js的条件(构造闭合);
通过唯一识别字符,找到返回的点,看后端返回来的数据是否有做对应的处理,或者说我们提交的数据,是否有被过滤掉,是否有做对应的编码、转义等等,这就是从输入输出这两个角度,去确认一下后端,有没有做对应的措施,那如果说,我们输入的字符,会被原封不动的返回回来,且没有进行过滤和转义处理的话,那基本上这个地方,就是存在xss漏洞的,然后我们可以根据这个输出点,所在的这个html或者是js代码的上下文,去构造一个合法的闭合,然后我们在上payload去测试
④ 提交构造的脚本代码(以及各种绕过姿势),看是否可以成功执行,如果成功执行则说明存在XSS漏洞;
这是一个常规测试xss的流程
TIPS:
1.一般查询接口容易出现反射型XSS,留言板容易出现存储型XSS;
2.由于后台可能存在过滤措施,构造的script可能会被过滤掉,而无法生效,或者环境限制了执行(浏览器);
3.通过变化不同的script,尝试绕过后台过滤机制;
一般现在很多网站都会有一个对应的安全措施,但是这个措施有可能不会严格,通过编码和变形来绕过后端的过滤
XSS实验演示-环境介绍
测试目标:Pikachu–xss
测试工具:firefox+浏览器开发者工具
因为chrom目前比较新的版本,它这个安全措施做的比较严格,一些常规的xss和payload基本上,都会被它的安全机制拦截掉,或者是用ie浏览器,把安全机制调到最低,然后来做测试
|