前几天QQ巧遇卡在搞翻牌拿冰淇淋,于是研究了一下这个才上线没多久的新功能,发现存在一个比较严重的漏洞。之所以说严重是因为巧遇卡功能的特点就在于无法反悔性,你只能获得与你所翻用户的聊天机会,其他错过的3个人就算是苍老师什么的也木有办法反悔。
但是我发现的这个漏洞可以突破这一巧遇卡的特性,想跟谁聊就跟谁聊,如果被公布,那么巧遇卡将变得毫无意思可言。你们看到此文的时候,腾讯应该已经修复了这个漏洞。
巧遇卡属于嵌入客户端的web应用,在点了某张牌翻牌之后,会访问腾讯的接口:
http://chat.qq.com/cgi-bin/sel_cards?act=0
返回json数据如下:
age: charm: dec: idkey: imgid: key: loc_cn: nick: sex: url:
例如(参数做了处理,保护隐私):
{"age":20,"charm":40,"dec":"~","idkey":"c2129986f275f41bb211a02653e8a741c0b5b7d93445cc9","imgid":"0ec32c8c","loc_cn":{"c":"","d":"","p":"","u":""},"nick":"","sex":1,"url":"http:\/\/msr.qlogo.cn\/msr\/afb3c16851e7aafa89afad2218d9fd7b3a4c842e7d5c0393eb8bb9586825561fce8c2b993c23f76","verified":0}]
类似这样的信息有四组,代表四张卡后面的用户,这给了我们两个重要的信息:
idkey:
c2129986f275f41bb211a02653e8a741c0b5b7d93445cc9
用户照片url:
http://msr.qlogo.cn/msr/afb3c16851e7aafa89afad2218d9fd7b3a4c842e7d5c0393eb8bb9586825561fce8c2b993c23f76/100
这样就可以把四个用户的照片和idkey对应起来了,那么idkey有什么用呢,通过用户的idkey,我们可以得到用户的dlgid以及分配的聊天服务器等,接口在:
http://chat.qq.com/cgi-bin/sel_cards?idkey=xxx&act=1
通过dlgid和idkey,我们可以与对方发起巧遇卡中的聊天了,具体就是替换提交的参数而已,就不多说了,可以自己研究一下。
至此,整个过程完毕,我认为这种漏洞是比较严重的,因为它绕过了巧遇卡整个业务的核心逻辑。
你可能喜欢
我是新手,能教我您用什么方法怎么得到的返回数据?是抓包吗?我是抓包。
有个问题想请教您
巧遇卡翻牌也可以活动游戏礼包(就是翻巧遇卡,有可能翻出CDKey,几率超低有人7小时没翻出),我觉得也有可投机取巧的,POST的数据几乎是一样的,Get的不一样,但是每次翻牌get的都有相同点,只要做个工具不停发包,把收到的每一次的数据整理,过滤,应该可以找到有CDkey的那个数据。你觉得能吗。
理论上发包翻牌是可以的,但是无法判断返回是否中奖
无意间看到自己三年前的回复,觉得自己的问题好low。谢谢你的回答!
没什么了,谁都是从不懂过来的