当前位置: 首页 > news >正文

网安实战|DVWA中级DOM型XSS渗透测试全解,手把手教你绕过过滤拿下漏洞!

大家好,我是专注网安实战分享的博主,今天带大家深度拆解DVWA中级安全级别DOM型XSS渗透测试全过程!

DOM型XSS作为跨站脚本漏洞里的经典类型,和反射型、存储型有着本质区别,它的漏洞触发不经过服务器端解析,而是直接在前端DOM树中执行恶意脚本,隐蔽性更强,也是网安面试和靶场实战的高频考点。

很多小伙伴卡在中级难度,明明低级能轻松拿下,中级却一直无法触发弹窗,核心就是没搞懂中级的过滤规则和绕过逻辑!这篇文章从环境搭建、漏洞原理、源码分析、payload构造、实战复现、漏洞修复全流程讲解,全程干货,新手也能跟着一步通关,文末还有互动思考题,欢迎大家留言交流~

一、前置准备:DVWA环境配置

首先确保你的DVWA靶场环境正常运行,这里简单提一下基础配置,老手可以直接跳过:

1. 搭建PHP+MySQL环境,可使用phpstudy、XAMPP等集成环境

2. 下载DVWA源码,部署到网站根目录,配置数据库连接

3. 登录DVWA,默认账号密码 admin/password

4. 左侧菜单栏找到DVWA Security,将安全级别设置为Medium,保存生效

5. 切换到XSS (DOM) 模块,正式开始渗透测试

二、DOM型XSS原理+中级防御机制分析

1. DOM型XSS核心原理

DOM(文档对象模型)是网页的结构化表示,DOM型XSS就是攻击者构造恶意URL,用户访问后,前端JavaScript通过 document.write 、 innerHTML 等方式,直接将URL中的恶意参数解析到DOM树中,无需服务器参与,直接在浏览器端执行恶意脚本。

简单说:数据直接在前端渲染,不与后端交互,漏洞出在前端JS代码。

2. 中级安全级别防御规则(源码拆解)

想要绕过防御,必先看懂防御!我们直接查看DVWA中级DOM型XSS的后端+前端源码:

后端PHP过滤代码

前端JS渲染代码

✅ 中级防御核心:

- <script`** 关键字(不区分大小写),禁止script标签直接注入

- 未过滤其他HTML标签和事件属性

- 前端直接将URL的 default 参数拼接到select下拉框中,未做任何转义处理

❌ 防御漏洞:

过滤规则单一,只针对script标签,可通过其他HTML标签+事件属性轻松绕过!

三、中级DOM型XSS渗透实战步骤

步骤1:定位漏洞入口

进入DOM XSS页面,默认是语言选择下拉框,URL为:

参数 default 是可控的,漏洞点就在这个参数上,`就能触发,中级会被过滤,所以需要换payload。

步骤2:构造绕过Payload

因为script标签被禁,我们换用img标签+onerror事件,同时闭合前端的select、option标签,让恶意代码正常渲染:

核心Payload

完整恶意URL

步骤3:实战触发漏洞

1. 复制上述恶意URL,粘贴到浏览器地址栏

2. 按下回车,页面直接弹出alert弹窗,漏洞触发成功!

3. F12查看页面源码,能看到恶意代码已经被插入到DOM树中,成功绕过中级过滤规则。

步骤4:进阶Payload测试(拓展)

除了img标签,还可以用其他标签触发,大家可以自行测试:

1. 鼠标悬停触发: English</option><a href=javascript:alert(1)>点</a>

2. 页面加载触发:</select`

3. 获取cookie: English</option></select><img src=x onerror=alert(document.cookie)>

四、漏洞绕过核心思路总结

中级DOM型XSS绕过其实很简单,记住这3个关键点:

1. 避开黑名单:后端禁了script标签,就换img、body、a等其他HTML标签

2. 标签闭合:前端代码是在select/option内渲染,必须先闭合原有标签,否则恶意代码会被当作普通文本

3. 利用事件属性:onerror、onload、onmouseover等事件,无需script标签就能执行JS代码

五、漏洞修复建议

针对这种DOM型XSS漏洞,开发中可以从这几点修复:

1. 前端转义:对URL参数进行HTML实体转义,禁止直接拼接DOM

2. 后端校验:完善白名单机制,default参数只允许预设的语言值,拒绝非法字符

3. 禁用危险函数:避免使用 document.write 、 innerHTML 直接渲染用户可控数据

4. CSP策略:设置内容安全策略,限制脚本执行来源

六、互动环节(欢迎留言交流)

1. 你在测试中级DOM型XSS时,遇到过哪些绕不过去的问题?

2. 除了文中的Payload,你还能想到哪些绕过方法?

3. 高级别DOM型XSS的过滤规则更严格,你知道该怎么绕过吗?

本文全程实战复现,步骤详细可复现,适合网安新手入门学习,觉得有用的小伙伴可以点赞、收藏、关注,后续会持续更新DVWA全关卡通关教程,以及更多网安实战干货!

http://www.jsqmd.com/news/852788/

相关文章:

  • 猫抓插件:5大核心技术原理剖析与实战应用指南
  • 探索Umi-OCR:开源离线文字识别工具的五步精通指南
  • 从无人机云台到机械臂关节:聊聊FOC力矩控制在机器人里的那些实战坑
  • 解决Ubuntu Server 22.04远程失联:一招安装NetworkManager并配置静态IP(附nmcli命令详解)
  • 手把手教你用Wireshark和VirtualBox日志诊断eNSP错误代码40(保姆级排错流程)
  • 给程序员和数据分析师的气象学入门:搞懂城市边界层,让你的天气API数据不再‘失真’
  • 使用 Node.js 开发后端服务并接入 Taotoken 统一大模型接口
  • 为GitHub开源项目配置统一的大模型调用与成本管控方案
  • Cadence Allegro焊盘设计避坑指南:从SMD到通孔,这些层设置错了板子就废了
  • 如何编制ERP系统的物料编码?一文读懂底层逻辑
  • 【Perplexity知识图谱查询实战指南】:20年专家亲授3大隐性陷阱与5步精准检索法
  • 2026年装配式钢管桩:行业三大核心趋势解读 - 资讯速览
  • 长期项目中使用taotoken用量看板进行成本分析与优化决策
  • 如何用Flutter桌面工具一键生成软件著作权代码文档
  • 树莓派WiFi总掉线?排查与修复指南(从信号优化到驱动更新)
  • 暗黑2存档编辑器完整解决方案:5步实现角色定制与物品管理
  • CPU+GPU:开启AI推理新时代
  • 答辩前一天才慌?paperxie 帮我把毕业论文 PPT 的 “地狱副本” 打成了 “新手教程”
  • 深入CanFestival源码:我是如何通过调试理解PDO映射与同步(SYNC)机制的
  • uni-app H5播放m3u8视频避坑指南:从videojs到MuiPlayer的实战踩坑记录
  • 扣子(coze)高级实战-输入电影名,文案配音字幕全自动搞定
  • 从模型网关到智能体平台
  • [实战] 2026制造业数字化质量检测流程:从工程图纸识别到自动化检验计划(FAI)生成
  • ARM嵌入式视觉控制器实战:从硬件选型到算法集成的全链路方案
  • 对比官方渠道Taotoken在Token计费与套餐上的成本优势感知
  • 保姆级教程:在华为模拟器上搞定BGP、OSPF、RIP混合组网(附完整配置命令)
  • Tonzhon-Music:如何用现代React技术栈构建纯净无干扰的音乐播放平台?
  • 【机器人最优控制策略】3 智能运动系统的非线性轨迹优化:微分动态规划与迭代二次调节方法
  • 高级 SQL 实战教程(华为云 DWS / PostgreSQL 版)
  • CH340G模块除了下载程序,还能这么玩?一个硬件调试小技巧分享