大家好我是专注网安实战分享的博主今天带大家深度拆解DVWA中级安全级别DOM型XSS渗透测试全过程DOM型XSS作为跨站脚本漏洞里的经典类型和反射型、存储型有着本质区别它的漏洞触发不经过服务器端解析而是直接在前端DOM树中执行恶意脚本隐蔽性更强也是网安面试和靶场实战的高频考点。很多小伙伴卡在中级难度明明低级能轻松拿下中级却一直无法触发弹窗核心就是没搞懂中级的过滤规则和绕过逻辑这篇文章从环境搭建、漏洞原理、源码分析、payload构造、实战复现、漏洞修复全流程讲解全程干货新手也能跟着一步通关文末还有互动思考题欢迎大家留言交流一、前置准备DVWA环境配置首先确保你的DVWA靶场环境正常运行这里简单提一下基础配置老手可以直接跳过1. 搭建PHPMySQL环境可使用phpstudy、XAMPP等集成环境2. 下载DVWA源码部署到网站根目录配置数据库连接3. 登录DVWA默认账号密码 admin/password4. 左侧菜单栏找到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/optiona hrefjavascript:alert(1)点/a2. 页面加载触发/select3. 获取cookie English/option/selectimg srcx onerroralert(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实体转义禁止直接拼接DOM2. 后端校验完善白名单机制default参数只允许预设的语言值拒绝非法字符3. 禁用危险函数避免使用 document.write 、 innerHTML 直接渲染用户可控数据4. CSP策略设置内容安全策略限制脚本执行来源六、互动环节欢迎留言交流1. 你在测试中级DOM型XSS时遇到过哪些绕不过去的问题2. 除了文中的Payload你还能想到哪些绕过方法3. 高级别DOM型XSS的过滤规则更严格你知道该怎么绕过吗本文全程实战复现步骤详细可复现适合网安新手入门学习觉得有用的小伙伴可以点赞、收藏、关注后续会持续更新DVWA全关卡通关教程以及更多网安实战干货
网安实战|DVWA中级DOM型XSS渗透测试全解,手把手教你绕过过滤拿下漏洞!
大家好我是专注网安实战分享的博主今天带大家深度拆解DVWA中级安全级别DOM型XSS渗透测试全过程DOM型XSS作为跨站脚本漏洞里的经典类型和反射型、存储型有着本质区别它的漏洞触发不经过服务器端解析而是直接在前端DOM树中执行恶意脚本隐蔽性更强也是网安面试和靶场实战的高频考点。很多小伙伴卡在中级难度明明低级能轻松拿下中级却一直无法触发弹窗核心就是没搞懂中级的过滤规则和绕过逻辑这篇文章从环境搭建、漏洞原理、源码分析、payload构造、实战复现、漏洞修复全流程讲解全程干货新手也能跟着一步通关文末还有互动思考题欢迎大家留言交流一、前置准备DVWA环境配置首先确保你的DVWA靶场环境正常运行这里简单提一下基础配置老手可以直接跳过1. 搭建PHPMySQL环境可使用phpstudy、XAMPP等集成环境2. 下载DVWA源码部署到网站根目录配置数据库连接3. 登录DVWA默认账号密码 admin/password4. 左侧菜单栏找到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/optiona hrefjavascript:alert(1)点/a2. 页面加载触发/select3. 获取cookie English/option/selectimg srcx onerroralert(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实体转义禁止直接拼接DOM2. 后端校验完善白名单机制default参数只允许预设的语言值拒绝非法字符3. 禁用危险函数避免使用 document.write 、 innerHTML 直接渲染用户可控数据4. CSP策略设置内容安全策略限制脚本执行来源六、互动环节欢迎留言交流1. 你在测试中级DOM型XSS时遇到过哪些绕不过去的问题2. 除了文中的Payload你还能想到哪些绕过方法3. 高级别DOM型XSS的过滤规则更严格你知道该怎么绕过吗本文全程实战复现步骤详细可复现适合网安新手入门学习觉得有用的小伙伴可以点赞、收藏、关注后续会持续更新DVWA全关卡通关教程以及更多网安实战干货