DVWA-XSS(DOM)Low/Medium/High低中高级别

本文详细介绍了XSS(DOM)漏洞的Low、Medium、High三个级别,以及如何利用和防御。在Low级别,直接插入代码即可触发;Medium级别需替换特殊字符;High级别则利用双参数绕过白名单限制。同时,补充了注释绕过和双参数绕过的通用策略,并邀请读者分享更多攻击与防御技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

XSS(DOM)关卡是一个选项卡功能,我们在选项卡中选择一种语言,点击 「Select」 按钮,网站就会使用Get请求,将地址栏中 default 参数的值提交到后台,处理后在选项卡处回显。

在这里插入图片描述

地址栏中 default 参数的值可以修改,这是本关的突破口,我们直接在地址栏把 default 的值修改为 text,修改的参数值会插入到页面中,如果插入可执行代码,就能在页面中执行。

在这里插入图片描述

一、Low级别

在这里插入图片描述

Low级别没有过滤,直接在地址栏中 default 参数值 提交代码即可,payload:

?default=<script>alert('就TM你叫韩毅啊')</script>

输入后,回车

在这里插入图片描述

弹窗即代表过关

在这里插入图片描述

二、Medium级别

在这里插入图片描述

Medium级别过滤了 <script ,使用 <syv 代替 <script 即可,同时添加一个结束标签 </select 完成闭合,payload:

?default=</select><svg onload=alert('就TM你叫韩毅啊');>

输入后,回车

在这里插入图片描述

弹窗即代表过关

在这里插入图片描述

右键检查,可以看到<select 已经被闭合

在这里插入图片描述

三、High级别

High级别在后台使用了白名单,参数值必须等于 French English German Spanish 其中一个才会执行。

在这里插入图片描述
但是,后台只会检测 default 参数,我们使用 & 拼接另一个参数(随便定义),也就是「双参数绕过」,payload:

?default=English&=<script>alert('就TM你叫韩毅啊')</script>

地址栏输入后,回车

在这里插入图片描述

弹窗即说明过关

在这里插入图片描述

四、补充

1)「注释绕过」(原理:注释后面的内容不会被识别)
payload:

?default=#<script>alert('就TM你叫韩毅啊')</script>

或者

#?default=<script>alert('就TM你叫韩毅啊')</script>

后台只会检测 default 这一个参数,注释掉参数值,参数就是 null,不参与检测;注释掉参数也是一样,没有参数也不会参与检测,然后直接插入到前台页面。

2)双参数绕过和注释绕过适用于低中高三个关卡。
3)通过方式还有很多,欢迎在评论区补充

### DVWAXSS 过滤机制及绕过方法 #### LOW 级别过滤与绕过 在安全级别的设置下,DVWA 对用户输入几乎不做任何处理。这意味着可以直接通过 URL 参数或表单提交恶意脚本代码来触发 DOMXSS 攻击[^1]。 对于这种简单的防护措施,攻击者可以轻松构造如下 Payload 来实现弹窗效果: ```html "><script>alert(1)</script> ``` 此Payload会中断当前 HTML 属性并插入新的 JavaScript 脚本执行环境,在浏览器加载时立即运行其中定义的功能。 #### Medium 级别过滤与绕过 当难度提升至中级时,程序会对部分危险字符进行了转义操作,比如将 `<` 和 `>` 替换成对应的 HTML 实体形式 (`<`, `&gt`) ,从而阻止直接嵌入 script 标签的可能性。然而,这并不意味着完全免疫于 XSS 的威胁;仍然存在一些技巧可用于突破这些基本防御手段之一就是利用事件处理器属性如 onmouseover 或 onclick 创建交互式的攻击向量[^3]。 一个有效的例子可能是这样的字符串: ```javascript " onmouseover="alert('XSS')" ``` 它会在鼠标悬停到受影响区域的时候激活警告对话框。 #### High 级别过滤与绕过 随着复杂度增加到了高级阶段,除了继续沿用之前提到过的编码转换外,还加入了更多严格的验证逻辑——不仅限于移除特定标记而且还会检测整个请求的内容是否存在潜在风险模式。尽管如此,某些情况下还是能够找到缝隙加以利用,例如采用 Unicode 编码或者改变大小写的策略来混淆服务器端的识别算法[^4]。 下面是一个可能成功的尝试: ```html <ScRiPt>alert(String.fromCharCode(88, 83, 83))</ScRiPt> ``` 这里故意混合使用大写字母和小写字母书写标签名称以规避基于关键字匹配的安全检查。 #### Impossible 级别过滤 理论上讲,“不可能级”的保护应该已经考虑到了所有已知的技术途径,并采取了充分而严密的方法防止任何形式的跨站点脚本注入行为发生。实际上也确实很难再发现可被有效利用的弱点除非发现了框架本身的设计缺陷或者是新类型的漏洞尚未公开报道出来。 为了达到这一目标,开发者通常会综合运用多种技术组合拳出击:严格的数据清洗流程、白名单验证机制以及现代 Web 应用防火墙 (WAF) 解决方案等等。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

士别三日wyx

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值