前置知识:啥是DOM???
DOM 是 Document Object Model(文档对象模型)的缩写。
这个缩写,还不如不看,看了更不懂啥意思了?!!!
大佬说:我们可以把DOM理解为一个访问HTML的标准的编程接口。DOM是一个前端的接口,并没有和后端做任何的交互。
DOM的规定如下:
整个文档是一个文档节点。
每个HTML标签是一个元素节点。
包含在HTML元素中的文本是文本节点。
每一个HTML属性是一个属性节点。
节点与节点之间都有等级关系。
HTML的标签是一个个节点,而这些节点组成了DOM的整体结构,节点树。
DOM本身就代表了文档的意思,而基于DOM型的XSS是不需要与服务端交互的,它只发生在客户端处理阶段。
以下为HTML DOM 树:
咱们先在文本框中输入一个字符hello!!
查看源代码:
我们把这里的脚本复制出来!!!
function domxss(){ var str = document.getElementById("text").value; document.getElementById("dom").innerHTML = "<a href='"+str+"'>what do you see?</a>"; } //试试:'><img src="#" onmouseover="alert('xss')"> //试试:' onclick="alert('xss')">,闭合掉就行
显示出的脚本:
可控变量在这里!!!
<a href='”+str+”‘>
测试后,显示的脚本是这样的– href=”dom”
我们需要在输入的过程中,输入字符,闭合标签,并构造JS语句!!!!
根据提示信息:构造攻击语句:
“<a href='”+str+”‘>what do you see?</a>” //闭合情况如下!!!
"<a href='dom'> <img src="#" onmouseover="alert('xss')"> '>what do you see?</a>"
显示结果为:‘>what do you see?
如果把XSS变成攻击代码的话?
那么就会实现把如COOKIE之类的数据发送到攻击者的机器上!!!
但是这个也构造不了URL,也无法与后端交互,实际用途非常有限!!!!
来源:freebuf.com 2021-07-14 14:12:35 by: 知非知非知非
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END
喜欢就支持一下吧
请登录后发表评论
注册