pikachu靶场-XSS跨站脚本-DOM型xss – 作者:知非知非知非

前置知识:啥是DOM???

DOM 是 Document Object Model(文档对象模型)的缩写。

这个缩写,还不如不看,看了更不懂啥意思了?!!!

大佬说:我们可以把DOM理解为一个访问HTML的标准的编程接口。DOM是一个前端的接口,并没有和后端做任何的交互。

DOM的规定如下:

整个文档是一个文档节点。

每个HTML标签是一个元素节点。

包含在HTML元素中的文本是文本节点。

每一个HTML属性是一个属性节点。

节点与节点之间都有等级关系。

HTML的标签是一个个节点,而这些节点组成了DOM的整体结构,节点树。

DOM本身就代表了文档的意思,而基于DOM型的XSS是不需要与服务端交互的,它只发生在客户端处理阶段。

以下为HTML DOM 树:

1626243054_60ee7fee8d8202f68053b.png!small

咱们先在文本框中输入一个字符hello!!

1626243062_60ee7ff628ca21bf3a0be.png!small

查看源代码:

1626243071_60ee7fffc625c94fcec89.png!small

1626243080_60ee8008d04d26b0d3466.png!small

我们把这里的脚本复制出来!!!

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,也无法与后端交互,实际用途非常有限!!!!

1626243103_60ee801f151e0d9a258f0.png!small

来源:freebuf.com 2021-07-14 14:12:35 by: 知非知非知非

© 版权声明
THE END
喜欢就支持一下吧
点赞0
分享
评论 抢沙发

请登录后发表评论