当前位置:   article > 正文

漏洞篇之DOM型xss_dom型xss漏洞

dom型xss漏洞

原理:

DOM是一个树状的模型,js可以对树中的文档对象进行修改,而改变页面的元素,dom型xss就是通过函数获取到输入的值,然后拼接到代码中,如果包含恶意代码,则当js代码执行去改变页面元素的时候会导致恶意代码被执行,从而发生xss。

特点:

和反射型xss及存储型xss不同的是,DOM型xss不经过服务端,只在前端执行

实例:

pikachu靶场中的xss_dom_x为例

将'><img src="#" οnmοuseοver="alert('xss')">输入输入框中

点击请说出你的伤心往事按钮,可以看到url中text的值

再点击有些费劲心机想要……这段话,代码执行成功

 

我们来分析它的代码

 这是输入框的代码

 点击输入框提交后,这里会接收到test值,并且触发函数中的代码,所以我们就看到了有些费劲心机……这些字,可以看到οnclick=‘domxss()’这里,点击就会触发domxss()

接下来我们来看domxss()的代码,location.search的作用是设置或返回当前 URL 的查询部分(问号 ? 之后的部分),即返回了?text=我们输入的值,第二段代码str. split("text=")[1]),将str以text=隔开形成一个数组,也就是[?,我们的值],[1]就是取数组的第二个值,txss就是我们输入的值了,下面的正则表达式的意思是,最前面的“/”与最后面的“/”是分隔符,g是全局变量,+代表一个或连续多个,将\替代为空。由于我们输入的值没有\,所以xss还是等于我们的值,然后我们输入的值就被拼接到了下面,我们的代码将前面的值提前闭合了,并在后面加入了我们的js代码,所以导致我们的代码被执行,从而发生xss。

 

代码审计篇:

location.hash

location.search

document.referer

innerHTML

indexOf

document.getElementById

防御方法:

主要是检查输入的地方,和会发生dom型xss的函数

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/你好赵伟/article/detail/150649?site
推荐阅读
相关标签
  

闽ICP备14008679号