前言


DOM,全称Document Object Model,是一个平台和语言都中立的接口,可以使程序和脚本能够动态访问和更新文档的内容、结构以及样式。基于DOM文档对象模型的一种漏洞。

在网站页面中有许多页面的元素,当页面到达浏览器时浏览器会为页面创建一个顶级的Document object文档对象,接着生成各个子文档对象,每个页面元素对应一个文档对象,每个文档对象包含属性、方法和事件。可以通过JS脚本对文档对象进行编辑从而修改页面的元素。也就是说,客户端的脚本程序可以通过DOM来动态修改页面内容,从客户端获取DOM中的数据并在本地执行。基于这个特性,就可以利用JS脚本来实现XSS漏洞的利用。

可能触发DOM型XSS的属性:
document.referer属性
window.name属性
location属性
innerHTML属性
documen.write属性

用处:

构造跨站语句,抓取本次访问的cookie发送到接受服务器,然后把这个欺骗URL发给目标诱导他打开,获取到这个cookie之后就能用目标身份访问网站了。

解题过程

打开靶场看一下:

这里有一个搜索框,输入一个字符串,然后我们找一下字符串的位置:

在搜索输入框构造一下XSS
首先我们要把这个搜索框给结束,然后构造我们的payload。所以这里搜索框应该这样写:

"required=" "><script>alert('XSS')</script><name="

然后因为inpt标签原有的结尾还有部分html代码,所以随意用一个标签将其补充完整,尝试一下:

成功,继续构造一下取Cookie:
"required=" "><script>alert(document.cookie)</script><name="

最后修改:2020 年 08 月 10 日 04 : 12 PM