天天看點

web安全:QQ号快速登入漏洞及被盜原理 web安全:通俗易懂,以執行個體講述破解網站的原理及如何進行防護!如何讓網站變得更安全。

為什麼你什麼都沒幹,但QQ空間中卻發了很多小廣告?也許你的QQ賬号已經被盜。本文将講解一個QQ的快速登入的原理。

而利用這個原理最終可以實作,隻要你點選一個頁面或運作過一個程式,那麼我就可以擁有你的登入權限。可以直接進你郵箱,進你微雲,進你QQ空間等....

看懂本篇需要一點點web安全的基礎,請移步我的上篇

  http://www.cnblogs.com/1996V/p/7458377.html

web安全:QQ号快速登入漏洞及被盜原理 web安全:通俗易懂,以執行個體講述破解網站的原理及如何進行防護!如何讓網站變得更安全。

騰訊QQ有一個快速登入的功能,意思就是當你點開網頁的時候,他能自動效驗你是否登入了QQ。

那麼騰訊是怎樣實作的呢?

騰訊是通過NPAPI和 ActiveX 來實作的。

    (網景插件應用程式程式設計接口(NPAPI, Netscape Plugin Application Programming Interface)是Netscape Navigator、Mozilla Suite、Mozilla SeaMonkey和Mozilla Firefox等Gecko引擎浏覽器與Apple Safari和Google Chrome等webkit引擎浏覽器所使用的類似ActiveX的插件接口。

      ActiveX 是一個開放的內建平台,為開發人員、 使用者和 Web生産商提供了一個快速而簡便的在 Internet 和 Intranet 建立程式內建和内容的方法。 使用 ActiveX, 可輕松友善的在 Web頁中插入 多媒體效果、 互動式對象、以及複雜程式,建立使用者體驗相當的高品質多媒體CD-ROM 。)

因為IE從5.5版本後停止支援   NPAPI,是以, 騰訊對 IE浏覽器 采用 ActiveX 插件,對除IE浏覽器等其它主流浏覽器采用NPAPI的形式來實作快速登入。

每當你運作該頁面的時候,他會判斷你浏覽器支援不支援ActiveX,然後再進行相關操作,代碼我就不放出來了,有興趣的大家可自行百度了解。

當然,如果用ActiveX呢,你的浏覽器又得下載下傳插件,如果用NPAPI呢部分浏覽器還要稽核插件,并且伴随着時代的發展,NPAPI和ActiveX 已經顯得老态龍鐘,是以,騰訊想了個新花招來實作快速登入。

原來,QQ在本地開了一些端口(4300),做了個httpd,可以把這個東西了解成web伺服器,類似于IIS Express

httpd是是Apache超文本傳輸協定(HTTP)伺服器的主程式。被設計為一個獨立運作的背景程序,它會建立一個處理請求的子程序或線程的池。

下面,我們開始着眼于實作。

将使用到一款工具:Fiddler。

我們随便打開一個QQ域下的網站,比如www.qq.com,我們打開Fiddler進行監測。

發現:

web安全:QQ号快速登入漏洞及被盜原理 web安全:通俗易懂,以執行個體講述破解網站的原理及如何進行防護!如何讓網站變得更安全。

在ui.ptlogin2.qq.com的Host下,會産生一個key為 pt_local_token的 cookie,  如圖所示,尾号為562。

然後我們點選右上角登入,

web安全:QQ号快速登入漏洞及被盜原理 web安全:通俗易懂,以執行個體講述破解網站的原理及如何進行防護!如何讓網站變得更安全。

繼而會彈出一個快速登入的框

web安全:QQ号快速登入漏洞及被盜原理 web安全:通俗易懂,以執行個體講述破解網站的原理及如何進行防護!如何讓網站變得更安全。

他是怎麼監測到我登入的有QQ号呢?

好,我們接着用Fiddler來監測,我們發現,當點選右上角登入的時候,會觸發一個接口。

web安全:QQ号快速登入漏洞及被盜原理 web安全:通俗易懂,以執行個體講述破解網站的原理及如何進行防護!如何讓網站變得更安全。

這個接口的位址是:https://localhost.ptlogin2.qq.com:4300/pt_get_uins?callback=ptui_getuins_CB&r=0.9417236381383591&pt_local_tk=0.1111111111111562

web安全:QQ号快速登入漏洞及被盜原理 web安全:通俗易懂,以執行個體講述破解網站的原理及如何進行防護!如何讓網站變得更安全。

我們可以發現 ,這個接口的  pt_local_tk參數就是 之前的pt_local_token,尾号562,剛好吻合。

這個接口傳回了一串 關于目前QQ的資訊:

var var_sso_uin_list=[{"account":"137780739","client_type":65793,"face_index":486,"gender":1,"nickname":"看客 er","uin":"137780739","uin_flag":323486274}];ptui_getuins_CB(var_sso_uin_list);

還發現,還會請求一個接口,ptlogin2.qq.com/getface?appid=636014201&imgtype=3&encrytype=0&devtype=0&keytpye=0&uin=137780739&r=0.9433088515882535

這個接口會傳回目前QQ的頭像位址:

web安全:QQ号快速登入漏洞及被盜原理 web安全:通俗易懂,以執行個體講述破解網站的原理及如何進行防護!如何讓網站變得更安全。

這樣一來,頁面上就顯示了我們的頭像 網名等資訊了。

再然後我們在快速登入框中點選, 登入按鈕。

會調用:localhost.ptlogin2.qq.com:4300/pt_get_st?clientuin=137780739&callback=ptui_getst_CB&r=0.2443934530496683&pt_local_tk=0.11111111111111562 

這個接口的作用是,伺服器設定給浏覽器Cookie,

web安全:QQ号快速登入漏洞及被盜原理 web安全:通俗易懂,以執行個體講述破解網站的原理及如何進行防護!如何讓網站變得更安全。

再然後,又會調用接口:/jump?clientuin=137780739&keyindex=9&pt_aid=636014201&u1=http://www.qq.com/qq2012/loginSuccess.htm&pt_local_tk=0.11111111111111562&pt_3rd_aid=0&ptopt=1&style=40

将帶入之前的Cookie然後進入這個接口,最終傳回的仍然是注冊Cookie,

web安全:QQ号快速登入漏洞及被盜原理 web安全:通俗易懂,以執行個體講述破解網站的原理及如何進行防護!如何讓網站變得更安全。

而這次的Cookie,就是你登入所需要的Cookie。

這些Cookie就相當于令牌,有了這個令牌就可以擁有快速登入的權限,就相當于你登入一般的網站,賬号密碼進去,背景會給浏覽器注冊一條Token來做狀态驗證一樣。

也就是說,拿到了Cookie,你就可以通過CSRF(跨站僞裝)的形式,來搞好多事情。

可以在網站上放一個頁面,裡面跑http請求,或者搞個窗體,裡面也跑http請求。

隻要你電腦上登入了QQ,隻要你打開了這個頁面或者打開了這個窗體,那麼你的賬号就已經被入侵!

不需要輸入賬号密碼,可以直接拿着QQ空間發表留言的接口直接調用,可以直接爬蟲抓相冊圖檔,可以進微雲等等等等。

 最後,再告訴大家一個非常好的接口。

http://localhost.ptlogin2.qq.com:4300/mc_get_uins  

Host: localhost.ptlogin2.qq.com:4300

Connection: keep-alive

Cache-Control: max-age=0

User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.100 Safari/537.36

Upgrade-Insecure-Requests: 1

Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8

Accept-Encoding: gzip, deflate

Accept-Language: zh-CN,zh;q=0.8

Get即可

傳回:

web安全:QQ号快速登入漏洞及被盜原理 web安全:通俗易懂,以執行個體講述破解網站的原理及如何進行防護!如何讓網站變得更安全。

繼續閱讀