一、环境
Lab: Exploiting DOM clobbering to enable XSS | Web Security Academy
二、闯关及讲解
先随便填一个
我们提交的值没有了???
所以我们只能分析源码,这里有一个过滤框架
把我们的script标签过滤走了
这是我们提交的js,载入我们提交的评论后,通过ajax把我们的评论重新再读取出来,展示到页面上
最后展示到user-comments这个标签下
我们给两个恶意代码,下段看看
结果:图像出现了,name过滤掉了,email(h5的正则)和website利用不了
可疑的点:
这个值不存在取后面的,那我们看看控制台
明显不存在,那么这个值我们可以伪造??dom破坏???
测试,开始赋值
很明显是ok的
所以我们考虑在源码中window.defaultAvatar如何去替换
还有一个证明要x.y形式去替换,也就是window.defaultAvatar.avatar
那就简单了,我们写成这样,造成单引号闭合后,用x.y形式反弹我们一个alert
<a id=defaultAvatar><a id=defaultAvatar name=avatar href="cid:"onerror=alert(1)//">
我们可以看到我们的代码已经进去了,再随便评论一下,就可以触发我们的XSS代码了