V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
工单节点使用指南
• 请用平和的语言准确描述你所遇到的问题
• 厂商的技术支持和你一样也是有喜怒哀乐的普通人类,尊重是相互的
• 如果是关于 V2EX 本身的问题反馈,请使用 反馈 节点
paicha
V2EX  ›  全球工单系统

通过 QQ 客户端登录 Web 邮箱的身份认证漏洞

  •  
  •   paicha · 2017-06-12 12:04:44 +08:00 · 4805 次点击
    这是一个创建于 2503 天前的主题,其中的信息可能已经有所发展或是发生改变。

    macOS 重现步骤:

    打开 QQ,进入应用 tab,点击 QQ 邮箱,这时候会打开浏览器访问一个 HTTP 地址:

    http://ptlogin2.qq.com/qqmail?Fun=clientlogin&clientuin=xxxx&clientkey=xxxx&ptlang=xx&keyindex=xx
    

    在跳转到邮箱前,拷贝这个地址,退出 QQ 客户端,在 Chrome 隐身窗口打开上述地址,成功登录邮箱。

    https://twitter.com/yurii_yu/status/873225250955120640

    28 条回复    2017-06-13 18:51:57 +08:00
    Citrus
        1
    Citrus  
       2017-06-12 12:06:59 +08:00 via iPhone
    你这跟把 Cookie 复制出来说有登陆漏洞有啥本质区别?
    paicha
        2
    paicha  
    OP
       2017-06-12 12:17:14 +08:00
    @Citrus #1 那你会把 Cookie 编码在 URL 中吗?
    oh
        3
    oh  
       2017-06-12 12:17:56 +08:00 via iPhone
    几年前 Windows 上有过这个“漏洞”,后来腾讯修复了。
    我觉得这个在一定程度上也可以算是漏洞,这个 url 应该是一次性的,第二次访问不能登录才对。
    airycanon
        4
    airycanon  
       2017-06-12 12:18:53 +08:00
    @Citrus 不一样吧,他说的是退出 QQ 客户端之后,我的理解是用户已经注销了。
    also24
        5
    also24  
       2017-06-12 12:22:15 +08:00
    一开始我觉得有 “ QQ 邮箱独立密码” 存在,不以为然。

    直到自己测试了下,发现:
    1、这个链接是 http 的
    2、即使不输入独立密码,此时也已经在网页上登录了 QQ 帐号,可以访问其它业务(例如 qun.qq.com
    3、不止邮箱,空间按钮也是这样的

    这就相当的不安全了,去星巴克开个热点,分分钟一堆内部文件到手啊。
    nikoo
        6
    nikoo  
       2017-06-12 12:23:59 +08:00
    好奇这个漏洞的解决方案是?(一次性 URL 授权访问也并不比这个好多少吧)
    oh
        7
    oh  
       2017-06-12 12:24:31 +08:00 via iPhone
    @also24 这个 idea 不错!正好星巴克 mac 多!
    miyuki
        8
    miyuki  
       2017-06-12 12:25:11 +08:00 via Android
    说个有的没的

    我记得如果 QQ 客户端获取的 IP 和浏览器的 IP 不一致会要求重新登录,比如浏览器挂了个代理,登录 QQ 邮箱就会要求重新输入帐户密码
    mrjoel
        9
    mrjoel  
       2017-06-12 12:25:47 +08:00 via iPhone
    原来是这样修复的,以前一个 sid 可几处同时登陆,现在只是加了两层 key
    MrMario
        10
    MrMario  
       2017-06-12 13:14:20 +08:00 via iPhone
    腾讯的神 key,一个 key 可以登录大部分通用,这个问题存在很久了,搞劫持、小广告的很喜欢玩这个

    前段时间试了下 key 有实效时间限制,没发现实效次数限制
    anyclue
        11
    anyclue  
       2017-06-12 13:21:58 +08:00
    不明白这怎么就算个漏洞了,如果算的话这个漏洞怎么利用呢?
    also24
        12
    also24  
       2017-06-12 13:22:49 +08:00
    @nikoo #6
    如果保持当前把 key 写进 URL 的形式,那至少链接上 https 并启用 HSTS

    另一方面目前 macQQ 明明通过内置 web server 直接支持了快捷登录: http://localhost.ptlogin2.qq.com:4300
    那邮箱的验证按理来说也是可以走这个通道的。
    KomeijiSatori
        13
    KomeijiSatori  
       2017-06-12 13:25:56 +08:00
    之前报过一个类似的,可是官方回复好像不太重视...

    ![深度截图 20170612132503.png]( https://ooo.0o0.ooo/2017/06/12/593e25c599050.png)
    aksoft
        14
    aksoft  
       2017-06-12 13:27:13 +08:00
    我去开热点
    makendk
        15
    makendk  
       2017-06-12 13:30:26 +08:00 via Android
    @paicha 记得 09 年的时候就通过这样的方式看加密的 QQ 空间 这不算漏洞吧 腾讯好多从 QQ 面板上进入的业务 都有这样的 KEY 以前好像是 sid
    longr923
        16
    longr923  
       2017-06-12 13:56:02 +08:00
    get ???
    bombless
        17
    bombless  
       2017-06-12 14:00:27 +08:00
    这个其实就和短信发验证码给你让你登陆差不多……
    确实是系统的一个弱点,但是不是缺陷就不好说了

    以前 2009 年左右曾经 qq 邮箱的超大附件不错,有一个管理超大附件的工具就用这个串来访问 qq 邮箱的接口
    qile1
        18
    qile1  
       2017-06-12 14:01:32 +08:00 via Android
    截取 key,web+登录空间发表广告及色情内容,在使用 web qq 群发病毒 app,我有个号就这样被搞过
    doubleflower
        19
    doubleflower  
       2017-06-12 14:14:54 +08:00 via Android
    @anyclue 明文 http 啊!分分钟被同网络别人搞到登入你的邮箱。。
    580a388da131
        20
    580a388da131  
       2017-06-12 14:18:28 +08:00
    这个有效期挺短的
    jarlyyn
        21
    jarlyyn  
       2017-06-12 14:23:38 +08:00
    @paicha

    php 的 session 本来就能加在 url 里

    http://php.net/manual/zh/session.idpassing.php
    popok
        22
    popok  
       2017-06-12 14:52:59 +08:00
    这个问题最早可以追溯到我上初中那会,也就是 04 年的样子,当时腾讯的很多业务都能用这种 url 登陆,那时候还有人骗别人发这种 url 给自己。

    后来腾讯解决了这个问题
    paicha
        23
    paicha  
    OP
       2017-06-12 15:02:01 +08:00
    @jarlyyn #21 能并不代表应该这么做。云风在 Twitter 上的回复也已经够清楚了,不再累述。
    lslqtz
        24
    lslqtz  
       2017-06-12 17:20:44 +08:00
    加个 https 解决。。
    honeycomb
        25
    honeycomb  
       2017-06-12 17:25:19 +08:00 via Android
    这样的链接应当强制使用 HTTPS,并且只能使用一次
    mingyun
        26
    mingyun  
       2017-06-12 23:01:30 +08:00
    php 的 session 默认在 cookie,也可以在 url 上
    lesloli
        27
    lesloli  
       2017-06-13 10:54:49 +08:00
    我有一个大胆的想法
    Devmingwang
        28
    Devmingwang  
       2017-06-13 18:51:57 +08:00
    这个 Bug 是没有的,你换个浏览器你会发现其实不行。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   921 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 20:42 · PVG 04:42 · LAX 13:42 · JFK 16:42
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.