DOM型的xss漏洞利用

DOM:通过JavaScript,可以重构整个HTML文档,就是说可以添加,移除等等,对页面的某个东西进行操作时,JavaScript就需要获得对HTML文档中所有元素进行访问的入口。这个入口就是DOM,所以在DOM型的xss漏洞利用中,DOM可以看成是一个访问HTML的标准程序接口。

特征:整个过程都是在前端完成的,没有后端的参与(纯前端的操作!)

原理:
这是页面代码
上图var str = document.getElementById(“text”).value;和 <input id=“text” name=“text” type=“text” value="" / > 意思是把我们输入的东西(字符串)赋值给str,然后document.getElementById(“dom”).innerHTML = “< a href=’”+str+"’>what do you see?< /a > "; 把这个字符串整合到a这个标签中的href(属性)里再把a标签写到dom这个标签中。最后< div id=“dom” >< /div > 执行这个dom标签


实例:
在这里插入图片描述
上图可以看到我们输入的东西会被拼接到a这个标签的href属性中:

< a href='"+str+"'>what do you see?</a>

所以我们可以构造对应的payload让它执行我们想让它做的事,比如输入:

' "alert('hello world!')">

于是在前端就变成了这个:

<a href='' "alert('hello world!')">'>what do you see?</a>

执行效果如下:
在这里插入图片描述


DOM型xss-x:
页面源代码:

<script>
              function domxss(){
                  var str = window.location.search;
                  var txss = decodeURIComponent(str.split("text=")[1]);
                  var xss = txss.replace(/\+/g,' ');
                  document.getElementById("dom").innerHTML = "<a href='"+xss+"'>就让往事都随风,都随风吧</a>";
                }
 </script>

从上面可以看出,它同样也是输入到a标签的href属性中,但是,它的输入是从页面的URL中获取的,所以它的危害是比较大的,原理和反射型的xss一样,我们可以发送这个含有我们构造的payload的URL给想要攻击的用户,就可以进行相应的行动。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值