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 欲望与挣扎 
相关文章
相关标签/搜索