QQ坦白说好友分析

编程知识 更新时间:2023-05-03 03:44:56

最近QQ推出了坦白说栏目,允许给一个人匿名发送一个印象,然后别人回复了你的话,你们两个就可以聊天了,并且他不知道你,你却知道他,和QQ空间秘密不一样的是,秘密是双方都是匿名的,并且只能通过留言的方式来聊天,而坦白说是一方匿名,可以即时聊天。

收到的消息如图所示


通过抓包,我们可以抓到这个是一个网址

https://ti.qq/honest-say/my-received.html

直接访问这个地址,会直接跳到手机QQ下载页面,因为没有cookie和UA

带上QQ空间的cookies,和手机的UA访问


可以看到这个网页列表了,在浏览器调试里面找到这段网址

https://ti.qq/cgi-node/honest-say/receive/mine?_client_version=0.0.7&_t=1523761349720&token=1592905018

这是一段json数据,里面有很多段坦白说数据,这个正式我们需要找的数据,可以看到里面有一段

fromEncodeUin:“*S1*7K4zNKnqoecl”

那么这个就是重头,好友的QQ


不过这个东西是一段不知道什么样的数据,如何解密呢?

我们可以让指定的好友给我们发送坦白说,通过对比后发现,这个是有规律的。前面的*S1*, 是固定的,每个QQ都会有这个数据,那么剩下的就好办了,多几个QQ就对比出来了。

使用java 哈希表来做这个最好了。


那么最终获取就告一段落了。

那我们直接访问这个https://ti.qq/cgi-node/honest-say/receive/mine?_client_version=0.0.7&_t=1523761349720&token=1592905018

不就能获取了吗,仔细研究一下知道了,里面有两个参数,一个是t,一般来说t都是代表time,应该是时间戳,通过寻找js代码查看


看得到,t的确是时间戳,token,是通过获取cookies里面的skey数据来计算的,其实看到这儿我就已经知道了,很明显,这个就是gtk数据了,使用下面的java数据即可计算

Java
1 2 3 4 5 6 7 public static String getQzoneGtk ( String skey ) {          int hash = 5381 ;          for ( int i = 0 , len = skey . length ( ) ; i < len ; ++ i ) {              hash += ( hash << 5 ) + ( int ) ( char ) skey . charAt ( i ) ;          }          return ( hash & 0x7fffffff ) + "" ;      }

两个都有了,就可以直接提交了获取数据了。但是,直接获取不会返回数据,而会返回一段json~~

XHTML
1 2 3 4 { "code" : 2333333 , "msg" : "皮这一下你很开心么ヽ( ̄▽ ̄)?" }

带上cookies访问即可获取数据了。

后续

我做成了一个安卓版本的成品,大家可以访问github下载

https://github/ghboke/tanbaishuo

更多推荐

QQ坦白说好友分析

本文发布于:2023-04-30 10:57:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/86d4caee06107893beb7294f27713fcc.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:好友   QQ

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!

  • 114147文章数
  • 28918阅读数
  • 0评论数