V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
maxsec
V2EX  ›  分享发现

从发现微信官方高危漏洞说起

  •  
  •   maxsec · 2014-08-15 18:28:41 +08:00 · 5093 次点击
    这是一个创建于 3548 天前的主题,其中的信息可能已经有所发展或是发生改变。
    在之前做微信公共账号的开发时,关于二维码的接口,需要开发者授权获得access_token然后才能请求参数生成二维码;

    而微信电脑上阅读文章右侧的二维码,URL中的参数就是上述参数,而且会请求到开发者服务器,然后没有任何验证(现在已修复)。


    再来说说遇到的奇葩的事情:

    1. 在我提交漏洞到TSRC后,他们在30分钟内就把漏洞修复了,然后确认漏洞足足花了24小时;
    2. 今天上午,一个叫rices@tsrc的人联系到我QQ,说让我谈谈对这个漏洞的理解,然后我提出打电话我给他解释,然后他拒绝了我的电话谈的请求说那个二维码只是一个名片吧?我回复:“你们昨天连夜修复了所以就别装不懂了”
    3. 这个漏洞居然评级仅仅是中;

    我来给大家解释下这个漏洞的危害性:
    比如一家金融平台,有绑定微信的功能,那么一定是通过生成带参数二维码来绑定,只要知道用户UID就可以攻击到这个用户,针对微信公共号开发的功能(假如有消费/提现。。。后果很严重)全部操作都能访问到!
    再如果是一家银行。。。。后果不敢想象

    所以,这个肯定是高危漏洞!

    大家以后有腾讯公司的任何漏洞,要么发乌云,要么发微博直接公开吧!千万别提交到TSRC,这帮人全是逗B。
    第 1 条附言  ·  2014-08-16 17:37:05 +08:00
    感谢大家对本主题目的关心, 我就抛砖引玉, 以我是如何黑掉DNSPod为例来解释这个漏洞的危害性

    针对腾讯微信未经开发者授权以开发者名义滥用二维码生成, 本人成功黑掉DNSPod uid#6 ( qr_scene_id=6)这个用户:

    29 条回复    2014-08-27 20:49:11 +08:00
    ytf4425
        1
    ytf4425  
       2014-08-15 18:37:44 +08:00
    乌云+1
    微博公开有点危险,搞不好人家告你呢
    cobola
        2
    cobola  
       2014-08-15 18:58:35 +08:00 via iPhone
    支持乌云
    jasontse
        3
    jasontse  
       2014-08-15 19:28:25 +08:00 via Android
    人家要你谈谈这个漏洞说不定是想挖你去,情商堪忧。
    YouXia
        4
    YouXia  
       2014-08-15 19:31:12 +08:00
    其实,还有更高危的漏洞呢,之前朋友给我看过,不知道修复没有。
    kinghenry
        5
    kinghenry  
       2014-08-15 19:32:33 +08:00
    @jasontse 真想挖人必然是电话联系啊,难道还QQ联系?
    YY
        6
    YY  
       2014-08-15 19:35:16 +08:00
    他是要确认漏洞修复完全了吧
    momo5269
        7
    momo5269  
       2014-08-15 19:40:34 +08:00
    @jasontse 要挖用邮件么……
    zjj
        8
    zjj  
       2014-08-15 20:34:07 +08:00
    我觉得要是我,也懒得给你打电话,网络交流就好,电话什么的,除了现实认识的,其余用短信都行
    hzlzh
        9
    hzlzh  
       2014-08-15 20:36:12 +08:00
    电话是同步的,相比更喜欢异步的交流。而且QQ联系不也是挺方便的么,彼此都有思考的时间。
    ccbikai
        10
    ccbikai  
       2014-08-15 20:48:07 +08:00 via Android
    微信的UID在不同的公众号那里好像不一样
    xoxo
        11
    xoxo  
       2014-08-15 21:18:28 +08:00
    @ccbikai 根据我以前做过的微信平台 开发经验 来看,你说的uid是微信返回的openid;
    楼主所说的是接入微信公共账号的第三方平台本身用户体系的uid,

    通篇全文,漏洞 确实 应该评级 为高危;因为影响到的不 只是腾讯 微信,还有第三方接入微信的所有服务,均受到了漏洞潜在的安全威胁,

    个人认为此漏洞的影响力不亚于拖掉腾讯的库。评级为中实属腾讯安全响应的误评。
    xoxo
        12
    xoxo  
       2014-08-15 21:20:02 +08:00   ❤️ 1
    @zjj 根据你回帖的仇恨度推测,以你的水平,应该进不了互联网公司安全部门 : -)
    cxe2v
        13
    cxe2v  
       2014-08-15 21:59:59 +08:00
    赶脚看不懂楼主的描述,文字功底不行啊楼主
    sobigfish
        14
    sobigfish  
       2014-08-15 22:35:16 +08:00
    微信电脑上阅读文章右侧的二维码...带了access_token,是一家的行为吧,本身微信回复的是不会带的,反正没能重现-。-,
    按理说access_token只在服务器和微信服务器通讯时才使用,在client端显现本来就有些奇怪。
    Wowbeing
        15
    Wowbeing  
       2014-08-15 22:43:11 +08:00
    原来去TSRC提交漏洞,还有奖金的。。
    xoxo
        16
    xoxo  
       2014-08-15 22:45:37 +08:00   ❤️ 1
    期待作者发表原始POC
    dangge
        17
    dangge  
       2014-08-15 22:46:19 +08:00   ❤️ 1
    dangge
        18
    dangge  
       2014-08-15 22:47:37 +08:00
    okface
        19
    okface  
       2014-08-15 23:09:33 +08:00
    呵呵 腾讯
    teavoid
        20
    teavoid  
       2014-08-15 23:26:51 +08:00   ❤️ 1
    lz觉得奇葩的三件事,我觉得1和2都很正常。
    1涉及到相关人责任归属,需要时间确认可以理解。2是个正常反应,lz那句反讽有点过,好好沟通就完了。
    3是在可以商榷的范围内。但是整件事情来说,够不上奇葩。
    pimin
        21
    pimin  
       2014-08-16 00:49:40 +08:00 via iPhone
    感觉偶然所得漏洞,如使用软件时刚好遇到崩溃,点了调试找到原理,提交给厂商本身并无它求,修复了即可。
    至于追求认同之类,利用它造成破坏来得更直白一些。
    沟通方面,工作习惯问题吧,qq、邮件之类,双方有思考余地,并且可以保存记录,电话感觉并不适合技术交流。
    maxsec
        22
    maxsec  
    OP
       2014-08-16 17:37:30 +08:00
    主题已更新。
    sobigfish
        23
    sobigfish  
       2014-08-16 19:58:01 +08:00
    貌似dnspod那边也有漏洞,把scene的权限扩大了。
    maxsec
        24
    maxsec  
    OP
       2014-08-16 20:14:52 +08:00
    @sobigfish 漏洞就是出在微信这边,DNSPod没做错任何事情。

    原因:
    本次攻击关键的因素就在于绕过了access_token验证这一步,

    微信公共平台已定义, access_token用于鉴别请求身份, 除腾讯以外其它公司无法攻击这个环节,
    而微信那张神奇二维码打了自己的脸, 不遵守自己的约定, 以企业用户名义生成二维码,
    也只有腾讯这家SB公司才能如此下做了.
    hackwjfz
        25
    hackwjfz  
       2014-08-18 04:04:43 +08:00
    对微信这边开发比较了解,按道理这里只是一个scene id,这个id在微信中的目的是用来做来源识别,用户扫描不同的二维码就可以区分不同的来路。

    您补充的那张图中出现的域名如果是不是楼主的,那只能说明问题应该是在DNSPod,他们草率的将场景id直接用来做用户识别了。

    个人感觉这个问题不太应该是微信的问题,微信只是“替你生成了一张带场景id的二维码”而已。

    当然也可能没能理解清楚LZ的意思。请指教。
    maxsec
        26
    maxsec  
    OP
       2014-08-18 13:39:59 +08:00
    @hackwjfz 微信的来源接口设计上本来是安全的,如果wechat官方遵守自己的约定的话;
    可是wechat自己没遵守了自己关于“access_token first”的约定,导致了接口的不安全。
    ncmonster
        27
    ncmonster  
       2014-08-25 15:26:17 +08:00
    ##这个漏洞居然评级仅仅是中;
    TSRC对漏洞的定级有:低危、中危、高危和严重,简单举几个比较明显的例子:
    可以直接获取到服务端系统权限的漏洞算严重;
    可以直接获取用户权限的的漏洞算高危;
    需要交互才能获取到用户权限的漏洞算中危。
    如果楼主觉得你提交的这个漏洞算严重。那你说说什么样的漏洞算高危,中危,低危呢
    maxsec
        28
    maxsec  
    OP
       2014-08-27 20:46:11 +08:00
    @ncmonster 首先这个漏洞爆了微信的菊花,调用微信API的有各家银行金融机构,这些用户的价值等同于微信自己的用户?SB
    maxsec
        29
    maxsec  
    OP
       2014-08-27 20:49:11 +08:00
    @ncmonster AND by the way, 如果这个漏洞仅仅是中,微信会那么快修复了才来response么?再送你一个SB称号
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2205 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 35ms · UTC 02:49 · PVG 10:49 · LAX 19:49 · JFK 22:49
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.