|
今天在网上看到有人发了强制聊天的工具,是web版的,于是谷歌了一下。找到了由杨元公布在乌云网上的bug,顺便测试了一下,可惜腾讯已经修复了。(表面上腾讯忽略了杨元的报告)4 F( e8 V- J$ T
在QQ空间中,有一个谁看过我的功能,然后我们把鼠标移到他们的头像上,会弹出一个信息卡片。
* k, Y& l( N7 U% A" B! y3 F' f! f) W% x) y
- E5 U/ a! ~7 [, y- F, a/ w* [+ Z
) b; K) o* e2 a+ x/ t1 t信息卡片上有一个聊天功能,也就是这个接口,出现了严重的bug。抓包发现聊天的接口为:4 ?1 a0 `0 k: `$ a* S! S
! z& @* v* F& q6 Y3 }- |- B, f
http://r.cnc.qzone.qq.com/cgi-bin/user/cgi_tmp_talk?qzone_uin=20737302&to_uin=569550119&g_tk=1593160781( ^- B+ T3 k6 z5 }# v3 m
2 d! q1 ?6 e! W7 h里边有两个重要参数qzone_uin发起QQ(以下简称sender),to_uin接收QQ(以下简称receiver),指定这两个参数后,请求接口,返回信息如下:
6 B% u+ W' E/ i$ K) e V
1 t7 Q* `$ V, O+ d5 c2 W8 W- j" u7 q. W; I3 D+ I
<script type="text/javascript"> - / E- p0 |# \" x, ]( m5 c1 _
<!-- - # Q7 B T [2 T, N+ R+ Z- T( G
var url = 'tencent://message/?Menu=yes&uin=569550119&Service=112&SigT=ff8847c4116e035fd4b467f691cd9e42c0d413cec47eefb75d5e970421a2376ab400fffb0ea6cb8a&SigU=8a718a0cd8eba14b389fceb5788e72797b8a7eae107b9c43dd56bc7cc21090bccf67158b657963841c529232def3d416761799a1050acaaa29033f62f7fb46b5580fef571e7d82041508e926d65900ae77fae70b9cc4a341b7677c65b215d0327211235a5702bb6564157a3dfc11abe4'; - / C1 L; W% K; K9 W2 H& E
location = url; - 5 j0 L, z8 f! U* M5 I
//--> -
- </script> 2 F4 l1 J5 y4 S# T
/ ^- |1 G2 S3 {$ ^5 c) K0 x
6 B$ B! p$ [% H3 E9 n: |; j4 Q
这里边又有三个非常重要的数据,经过大量实践,发现:uin是接收人的QQ,SigT是receiver的指纹,SigU是sender的指纹。% p2 F6 W8 S1 X% H( U6 A( G9 C! m+ X
. _7 ]* v. u% L$ P3 ^. B由此可见,有了这两个指纹,然后访问tencent://message/接口,就可以发起临时会话。
; M1 M0 C, z) P5 a a9 X: \9 H' h! Y, N3 r0 K! m9 `! u" f
/ S1 t7 j* O6 o8 F, m) k6 R3 W0 i* Q6 ?' [
* }$ y; b3 d" W3 b这里边又有三个非常重要的数据,经过大量实践,发现:uin是接收人的QQ,SigT是receiver的指纹,SigU是sender的指纹。
3 F7 ~3 Q2 r2 J5 |5 q3 g/ M, q8 }
+ w; y4 F3 h6 ~8 s" }& Z+ ?7 x1 n& d由此可见,有了这两个指纹,然后访问tencent://message/接口,就可以发起临时会话。+ u+ f' H6 j7 B0 b* a! G
5 p Y2 s& |9 E; c2 B( W" i那怎么实现强聊呢?
6 n1 S- J2 J& w" G# v2 B: B' Y
7 L s3 o4 D1 u9 M2 f小虫直接说结论,想强聊,必须知道自己一个好友的QQ号和被聊人一个好友的QQ号。这两个条件均不难实现,自己的QQ好友您还不知道么。。。而被聊人的QQ好友,也是很容易获取的,比如你想和你同班的美女聊,那么班主任的QQ就是切入点。4 U1 t7 X( D$ X2 {0 K7 X, F5 Y5 ]
8 Y8 g& Q+ F& t
为什么需要这么奇怪的条件呢?小虫直接演示。
0 t/ f: L9 T% l4 h5 a& g* `; v& W) L3 m' G" B8 D2 J
假设有四个角色,分别是A(发起人),AF(发起人好友),B(接收人),BF(接收人好友)9 b# F" Z. ?/ k, B3 E# N0 ]
1 V+ `8 I6 x7 `
第一步,我们需要在A和AF间建立一个通道,将A作为聊天的发起人,可以这样构造URL:, w3 a8 e2 q+ J8 v0 T* r( I) K
( \0 [' C. @1 [- W4 g- B- ?, W
http://r.cnc.qzone.qq.com/cgi-bin/user/cgi_tmp_talk?qzone_uin=A&to_uin=AF&g_tk=1593160781
, e) c+ b+ D+ o- M* O. c# }
; O9 ]# K7 v; E7 {2 Q) t" E; S$ g/ `
在服务器返回的参数中,我们拿到SigU参数,这个也就是A作为sender的指纹。; V. b* k$ @5 k9 D& _' n4 c8 U5 u
7 l0 _- N- ]3 X- V1 K第二步,我们在B和BF间建立一个通道,将B作为聊天接收人,可以这样构造URL: l; Z: w o7 G' m6 F! x
) }2 z' D: T( j$ M
http://r.cnc.qzone.qq.com/cgi-bin/user/cgi_tmp_talk?qzone_uin=BF&to_uin=B&g_tk=1593160781+ S5 X3 q/ r: O9 D) U
# S0 ^$ |# }( L9 X5 v; J2 m* T
8 v" x8 l' V7 ^2 W( Y4 C A在服务器返回的参数中,我们拿到SigT参数,这个也就是 B作为receiver的指纹。
5 s5 L1 I4 `5 T6 }& p B6 c8 J/ T- b! y, D: _
接下来我们把这两个指纹混合在一起,访问tencent://message/接口(别忘了加上最基本的uin参数,接收人QQ),恭喜,可以聊天了!
$ u$ w0 T! g' }3 K4 F
$ r* z) S Q1 E+ b2 q等等,好像有大问题,假如B和BF不是好友呢?我们并不能保证他们一定是好友,也就是说,我们是猜的。7 ~: `( b4 ~( ^) a
: _$ g9 Y+ L _. l
# W& I1 Y' ]. g5 T6 F聪明的你可能已经发觉了,这个接口可以测试两个QQ号码是不是好友(前提是被测者未开通QQ在线状态,如果一方开通了这个服务,可以尝试将sender、receiver反过来)!!!
) K z8 y/ a) S2 b/ X) G1 w7 |
- D H/ J" t8 l这是多么邪恶的接口!
$ j G* O1 Q: P6 m7 \" t# Q, u
5 O& {: s6 r( q+ L& h不法分子可以通过这个接口收费帮别人测试好友,进而导致情侣隐私泄漏,夫妻感情破裂,进而导致社会不和谐,进而导致生产力下降,进而导致科技停止发展,严重阻碍人类进化。! r2 B6 B0 r; m4 |! L
( {, _$ k* @1 o$ A9 i& q9 S' X
最后,补充一句,通过这个方法发起的临时会话,即使没有开启QQ在线状态服务也是可以的,除非你屏蔽了所有临时会话。! z7 c+ y% P9 y! _8 e
+ u6 w g. |0 f! P+ _
|
|