XSS漏洞的利用和浏览器解析机制

一、XSS漏洞的特点

描述:

跨站脚本攻击(Cross-site Scripting,通常称为XSS),是一种典型的Web程序漏洞利用攻击。攻击者利用Web程序对用户输入检查不足的漏洞将可执行恶意脚本注入网站或Web应用,当用户访问网页时触发恶意脚本的执行,从而达到窃取用户个人数据、弹出广告,甚至篡改网页内容等攻击目的。在线论坛、博客、留言板等共享平台是跨站脚本攻击的典型目标。

跨站脚本攻击是一种客户端代码注入攻击,恶意脚本在前端浏览器或Web应用程序等客户端侧执行,而非在后端服务器或数据库执行,最终受害者是访问用户。

类型区别:

1、反射型:

反射型跨站脚本攻击就是注入脚本作为客户端的请求提交给Web服务器,服务器解析后在响应消息中返回脚本由浏览器执行。因此攻击者需要使用钓鱼邮件、弹窗链接以及其他社会工程学方法引诱用户点击链接向Web服务器发出请求。

2、存储型:

存储型跨站脚本攻击也称为持久型跨站脚本攻击,注入的脚本永久存储在Web服务器上,如数据库、内存或文件系统中。只要注入脚本代码没有被清理,每次用户访问网页时都将加载恶意脚本。

3、DOM型:

基于DOM(Document Object Model,文档对象模型)的跨站脚本攻击通过篡改DOM注入恶意脚本。DOM提供对文档结构化的描述,并将HTML页面与脚本、程序语言联系起来,当网页被加载时,浏览器会创建页面的文档对象模型DOM。Web程序的客户端侧JavaScript脚本可以对DOM进行编辑从而动态修改网页内容,也就是从DOM获取数据然后在用户本地执行。在这个过程中,如果数据处理不当,攻击者就可以将恶意脚本注入DOM,然后读取DOM数据时触发攻击。经常被利用的DOM对象包括URL 、URL 锚点部分和Referrer。

二、XSS的fuzz字典

easyXssPayload/easyXssPayload.txt at master · TheKingOfDuck/easyXssPayload · GitHub

fuzzDicts: Web Pentesting Fuzz 字典,一个就够了。 (gitee.com)

三、靶场实践

第一关:

直接在url后尝试最简单的,<script>alert(1)</script>  

第二关:

继续第一关的方法,没成功

看看源代码

闭合双引号, ">       ......      <"

">  <script>alert()</script>  <",成功

第三关:

试一下前面的手段,都不行

又试一下闭合单引号,也没用

可以看出<>都被转化为 &lt;  &gt;

故采取' onmouseover ='alert()绕过<>的过滤,同时闭合  '

(onmouseover鼠标移动到特定位置触发)

第四关:

直接先看

看完代码尝试闭合

<>会被过滤掉

为绕过<>的过滤,选择" onmouseover ="alert(),同时闭合双引号

第五关:

输入<>看看过滤情况

没过滤,尝试"><script>alert(1)</script><"

又试了下" onmouseover ="alert()

可以看出都被添加了下划线干扰语句

采取<a href=".........">..........</a>    (定义链接的指向)

"> <a href="javascript:alert()">点这里</a> <"

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值