网安实战|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全关卡通关教程,以及更多网安实战干货!
