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

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

缺陷编号:wooyun-2014-077219

漏洞标题:远程偷取QQ iphone版内部隐私文件,含一大波信息如token、UserPwdSig、好友列表、聊天记录等

相关厂商:腾讯

漏洞作者: 学习乌云

提交时间:2014-09-24 21:13

修复时间:2014-12-23 21:14

公开时间:2014-12-23 21:14

漏洞类型:用户敏感数据泄漏

危害等级:高

自评Rank:20

漏洞状态:厂商已经确认

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

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2014-09-24: 细节已通知厂商并且等待厂商处理中
2014-09-25: 厂商已经确认,细节仅向厂商公开
2014-09-28: 细节向第三方安全合作伙伴开放
2014-11-19: 细节向核心白帽子及相关领域专家公开
2014-11-29: 细节向普通白帽子公开
2014-12-09: 细节向实习白帽子公开
2014-12-23: 细节向公众公开

简要描述:

昨晚刚拿到新iphone6,开开心心的,晚上随便测试了下,居然发现QQ iphone版一个很好用的远程漏洞。 犹豫了先报腾讯还是乌云,没经验,按学术圈的思维就还是先提交到TSRC了。没想到他们居然只给rank 6的分数(还是从5 argue上来的)。 报漏洞最怕的就是自己的发现得不到应有的认同,所以不要他们的任何奖励,就希望到乌云这让大家看看。以后腾讯的漏洞也只通过乌云报! 大家等公开看看严不严重吧,比如能不能进去别人QQ。

详细说明:

在iphone 6(最新版iOS8)上测试,未越狱版本。昨天的最新版QQ。
如下图所示,基本攻击流程是这样的:一个假想攻击者发来一个文件(它可以从任意终端发,比如PC),我作为受害者下载打开后就会导致我的iphone QQ里的内部隐私文件被远程偷走。整个流程很简单合理,不需要其他额外的交互操作了。

stealQQ_iphone1.png


可以看到Cookies.binarycookies可以被偷走。当然,更多其他的内部隐私文件一样可以偷,造成更严重的后果(下面的漏洞证明里我会再详细写)。

stealQQ_iphone2.png


当然也可作为UXSS来使用

stealQQ_iphone8.png


他们说光alert还不行,还得demo真正可以远程偷文件。所以我就真的去做了,如下图,红色标记的就是头20字节的文件内容(服务器访问日志里)

stealQQ_iphone6.png

漏洞证明:

偷Cookie文件的PoC如下:

QQ_fullPoC.png

偷其他文件的话,只要改var aim那边的相对路径就可以了。
接下来,我们看看到底有那些隐私文件可被利用吧。iOS8似乎不方便连电脑调试,所以我拿我的ipad看看里面有啥文件。下图展示的是token.txt(之后其他文件就不再一一截图了,只给出文件名和里面的内容)

iphoneQQ_desktop.png


1. 这个token.txt里是这样一段字符串,<b3c7d044 ed8c0042 57c8cf44 ea25faec 25c2ba6a 83f0e95b 054b6c95 aa496076>,你说它是什么呢 :)
2. WtloginConf里有更多好东西,如下图:

WtloginConf.png

比如其中的wtlogin_config_file有上次登录时间啊之类的,最关键的是里面有当前登录QQ号和它的UserPwdSig

<key>WtloginUserPwdSig</key>
<dict>
<key>QQ号(隐去)</key>
<data>
z8K6WWJbGWYjXRDu+9YnI1/KZF1xN1DFo8NBHqNw4JwQNuVURwbItlEwtKBZ
lr7J9ILF隐去一些Aq+e/uPAqbJ1U/5mPS
+8Zoo隐去一些ZGzs7ICCOwyXFG12tiY4
yE8XsnURpT4lKSM5THzPUFY=
</data>


3. 上面的contents文件夹里保存了该台设备里登录过QQ号的隐私信息:

$ ls
DiscussGroup QQFriendListManager coredataDB.sqlite
QQ.db QQHistoryList.plist groupMaxSeqDic.plist
QQFriendList.plist blacklist.list strangerlist.list

可以看到好友列表、聊天记录啊等等。比如QQ.db里就有很多东东

qqdb.jpg

config.db这里面的

configdb.jpg

其他的文件就懒得一一列了。
怎么进入别人的QQ(其实上面该有的信息都有了,进入别人的QQ还那么重要吗,主要不也就是再做进一步欺诈吗)?有几种可行的方法(限于时间关系,我就不去demo了):
1)设个代理,分析QQ在之前已经输过密码的情况下是拿什么作为登录凭证的,token存放在哪个文件。我估计很可能是上面几个信息中的一个。
2)把目标用户的文件都偷走(或者只偷其中重要文件),然后存放或替换掉自己iphone QQ里的数据文件夹。估计腾讯没防御这种copy-paste攻击的。

修复方案:

建议参考dropbox iOS版怎么处理file的,它做的很好。
如有不当之处,敬请原谅。我希望这个case得到合理的认可,然后不想花费时间了(我今天就没干别的事情了。。)。因为乌云的报告流程简单了当,也可以得到大家的监督。谢谢。

版权声明:转载请注明来源 学习乌云@乌云


漏洞回应

厂商回应:

危害等级:高

漏洞Rank:12

确认时间:2014-09-25 10:35

厂商回复:

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

最新状态:

暂无