- 其他相关链接:XSS-总结
一、DOM-Based 型 XSS
1.1 DOM-Based 型 XSS 介绍
DOM-Based型XSS:基于 浏览器DOM解析的攻击。
- 即:在前端的页面进行
DOM操作的时候,例如:通过javascript操作DOM时,一些带有恶意代码的片段被HTML解析执行,从而导致XSS攻击。
1.2 DOM-Based 型 XSS 过程
- 请看下图:

- 用户打开带有恶意的链接。
- 浏览器(即:客户端)会在
DOM解析时直接使用恶意数据。- 结果:用户中招了!!!
1.3 触发 DOM-Based 型 XSS 的场景
- 触发
DOM-Based型XSS的场景:innerHTML、outerHTML、document.write
1.4 触发 DOM-Based 型 XSS 的例子
DOM-Based型XSS例子:
- 拼接
HTML文本- 修改
HTML结构
二、DOM-Based 型demo
2.1 demo的下载和操作
- 点击下载demo,详细的操作可以阅读
readme.md文件。
- 操作过程如下:

2.2 demo 的提示
- 测试的例子1:
http://ke.qq.com,点击链接,可以打开网站。- 测试的例子2:
" onclick=alert(/xss/) //(可看下图)
- 这个例子屏蔽了
href属性,为a标签添加了onclick事件,用户点击a标签,就会有弹窗出现!!- 如果是一些恶意的脚本代码,那么在这里就会起到
DOM-Based型的XSS攻击的作用。

三、总结
- 总结之前,我们先来比较一下三种
XSS攻击:

- 反射型
XSS(服务端直接使用恶意脚本并返回结果页)和存储型XSS(服务端存储恶意脚本并返回)都是需要服务端的直接参与的。- 然而对于
DOM-Based型XSS来说,其并不依赖服务端,服务端的响应不会涉及到恶意脚本的内容。DOM-Based型XSS是客户端XSS的一种形式, 其数据来源在客户端中。- 从效果来看
DOM-Based型XSS也是需要诱导用户去打开相应恶意链接才能发送的XSS攻击,所以说DOM-Based型也可以算是反射型XSS的一种是正确的。
- 总结:
DOM-Based型XSS是由于客户端JavaScript脚本修改页面DOM结构时引起浏览器DOM解析所造成的一种漏洞攻击。
- 因此如果页面
JavaScript脚本不存在着漏洞的话,则不会发送DOM-Based型XSS攻击。