什么是XSS
XSS攻击全称跨站脚本攻击,是为不和层叠样式表(Cascading Style Sheets, CSS)的缩写混淆,故将跨站脚本攻击缩写为XSS,XSS是一种在web应用中的计算机安全漏洞,它允许恶意web用户将代码植入到提供给其它用户使用的页面中。
如图所示:攻击者向页面中插入JS代码,当用户浏览时XSS便会被执行,达到了攻击的效果。
XSS分类
XSS漏洞分为三大类:反射型XSS,存储型XSS,DOM型XSS,我们通常使用XSS漏洞来获取管理者cookie从而实现登录,也可以与CSRF结合起来从而实现get shell。我们在渗透测试的过程中最常遇见的是反射型以及存储型XSS,但是在各大SRC中反射型XSS评级较低,多数为低危偶尔判为中危,提交存储型XSS漏洞时需要给出输入输出点以及poc,payload等等,DOM型XSS出现频率较低。
详细介绍
反射型XSS:反射型XSS又被称为非存储型XSS,攻击者通常会通过URL参数传入恶意语句从而实现攻击,由于我们的payload未经过一个存储的过程直接传到了用户浏览的页面上,所以也称之为非存储型XSS。
如图所示,攻击者在URL中插入恶意语句,并将带有恶意语句的URL发送给受害者,受害者想要打开这个网址变向服务器发送请求,服务器接到请求后便进行响应,从而使受害者被攻击。
举例:如图所示我们构造payload?q=<script>alert('test')</script>
,服务端执行语句并将其传送到前端便实现了攻击
我们可以更改payload为?q=<script>alert(document.cookie);</script>
从而实现获取用户cookie,通过Chrome的console实现登录
存储型XSS:攻击者在页面中插入XSS代码,服务器将恶意代码传至数据库,当受害者浏览页面时服务器将代码取出从而实现攻击。
如图所示:攻击者构造XSS并将其存入数据库中,被攻击者在不知情的情况下访问了带有恶意脚本的页面,服务器将带有恶意脚本的页面返回给用户,浏览器解析页面从而实现攻击,并且数据返回至攻击者自己的恶意服务器中。
举例:
如图所示我们在源代码中插入了恶意语句并将其上传到了服务器,当用户在不知情的情况下浏览时便会被攻击,并将数据传至恶意服务器。
DOM型XSS:DOM型XSS与反射型XSS漏洞大同小异,但是区别在于反射型XSS会将语句存储于后端再出现在前端页面,而DOM型XSS漏洞直接将语句存储于前端。
XSS漏洞修复方法:
1.通过白名单对输入和URL参数进行过滤
2.进行HTML实体编码
当然具体的我们需要看企业的要求,这里推荐一篇关于XSS漏洞防御的文章:https://www.cnblogs.com/digdeep/p/4695348.html
最后我们对XSS三种攻击方式进行一下总结
共同学习,写下你的评论
评论加载中...
作者其他优质文章