从发现微信官方高危漏洞说起 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
maxsec
V2EX    分享发现

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

  •  
  •   maxsec 2014-08-15 18:28:41 +08:00 5686 次点击
    这是一个创建于 4104 天前的主题,其中的信息可能已经有所发展或是发生改变。
    在之前做微信公共账号的开发时,关于二维码的接口,需要开发者授权获得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  
    PRO
       2014-08-15 20:36:12 +08:00
    电话是同步的,相比更喜欢异步的交流。而且QQ联系不也是挺方便的么,彼此都有思考的时间。
    ccbikai
        10
    ccbikai  
    PRO
       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
    赶脚看不懂楼主的描述,文字功底不行啊楼主
    run2
        14
    run2  
       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
    主题已更新。
    run2
        23
    run2  
       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公司才能如此下做了.
    members
        25
    members  
       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     Solana     2519 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 28ms UTC 15:17 PVG 23:17 LAX 07:17 JFK 10:17
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86