web安全:QQ號快速登陸漏洞及被盜原理 web安全:通俗易懂,以實例講述破解網站的原理及如何進行防禦!如何讓網站變得更安全。

爲何你什麼都沒幹,但QQ空間中卻發了不少小廣告?也許你的QQ帳號已經被盜。本文將講解一個QQ的快速登陸的原理。html

而利用這個原理最終能夠實現,只要你點擊一個頁面或運行過一個程序,那麼我就能夠擁有你的登陸權限。能夠直接進你郵箱,進你微雲,進你QQ空間等....web

 

看懂本篇須要一點點web安全的基礎,請移步個人上篇編程

web安全:通俗易懂,以實例講述破解網站的原理及如何進行防禦!如何讓網站變得更安全。

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

 

 

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

那麼騰訊是怎樣實現的呢?服務器

騰訊是經過NPAPI和 ActiveX 來實現的。cookie

    (網景插件應用程序編程接口(NPAPI, Netscape Plugin Application Programming Interface)是Netscape NavigatorMozilla SuiteMozilla SeaMonkeyMozilla FirefoxGecko引擎瀏覽器與Apple SafariGoogle Chromewebkit引擎瀏覽器所使用的相似ActiveX的插件接口。app

      ActiveX 是一個開放的集成平臺,爲開發人員、 用戶和 Web生產商提供了一個快速而簡便的在 Internet 和 Intranet 建立程序集成和內容的方法。 使用 ActiveX, 可輕鬆方便的在 Web頁中插入 多媒體效果、 交互式對象、以及複雜程序,建立用戶體驗至關的高質量多媒體CD-ROM 。)工具

由於IE從5.5版本後中止支持   NPAPI,因此, 騰訊對 IE瀏覽器 採用 ActiveX 插件,對除IE瀏覽器等其它主流瀏覽器採用NPAPI的形式來實現快速登陸。web安全

每當你運行該頁面的時候,他會判斷你瀏覽器支持不支持ActiveX,而後再進行相關操做,代碼我就不放出來了,有興趣的你們可自行百度瞭解。

固然,若是用ActiveX呢,你的瀏覽器又得下載插件,若是用NPAPI呢部分瀏覽器還要審覈插件,而且伴隨着時代的發展,NPAPI和ActiveX 已經顯得老態龍鍾,因此,騰訊想了個新花招來實現快速登陸。

 

原來,QQ在本地開了一些端口(4300),作了個httpd,能夠把這個東西理解成web服務器,相似於IIS Express

httpd是是Apache超文本傳輸協議(HTTP)服務器的主程序。被設計爲一個獨立運行的後臺進程,它會創建一個處理請求的子進程或線程的池。


下面,咱們開始着眼於實現。

將使用到一款工具:Fiddler。

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

發現:

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

而後咱們點擊右上角登陸,

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

他是怎麼監測到我登陸的有QQ號呢?

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

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

咱們能夠發現 ,這個接口的  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的頭像地址:

這樣一來,頁面上就顯示了咱們的頭像 網名等信息了。

再而後咱們在快速登陸框中點擊, 登陸按鈕。

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

這個接口的做用是,服務器設置給瀏覽器Cookie,

再而後,又會調用接口:/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,

而此次的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便可

返回:

 

 

做者:小曾
出處:http://www.cnblogs.com/1996V/p/7481823.html 歡迎轉載,但任何轉載必須保留完整文章,在顯要地方顯示署名以及原文連接。如您有任何疑問或者受權方面的協商,請給我留言
.Net交流羣, QQ羣:166843154 慾望與掙扎 
相關文章
相關標籤/搜索