专栏名称: 渗透师老A
不一样的角度学习五花八门的渗透技巧,了解安全圈背后的故事
目录
相关文章推荐
龙岩市场监管  ·  市计量所技术骨干受邀为中石化龙岩分公司授课培训 ·  23 小时前  
田俊国讲坛  ·  田俊国:如何用AI助力我们的学习 ·  昨天  
51好读  ›  专栏  ›  渗透师老A

通过钉钉网页上的js学习xss打cookie

渗透师老A  · 公众号  ·  · 2022-10-31 10:06

正文

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

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

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链接依赖:

查看源码,看看他怎么调用的:







请到「今天看啥」查看全文