网站首页 - QQ空间专区 - 非主流专区 - 腾迅QQ专区 - 免费资源网 - 本站论坛 设为首页 加入收藏
公告:

本站全新改版,欢迎大家访问。首页优秀空间以及首页友情连接申请请联系QQ:838562

我们没有偷赖!致力为大家提供最新、最全、最时尚的QQ空间素材、QQ空间代码 非主流模块 FLASH模块 让你不再为装扮空间烦恼!
Q-Zone跨站入侵漏洞的详细分析与利用

作者:QQ非主流猪  来源:www.fzlzhu.cn  发布时间:2007-8-18 18:57:16

 

前不久,腾讯新推出的网络空间“Q-ZONE”暴出了存在跨站漏洞,很难想象,一项新推出的业务居然如果脆弱,不由不让人佩服腾讯的开发能力,下面便我们来了解一下“Q-ZONE”的这一跨站漏洞吧。

  Q-Zone跨站漏洞的分析

  1、Q-Zone对用户输入的过滤

  进入Q-Zone后,依次点击“设置→空间设置→QQ空间名称”,在这里将可以修改空间的显示名称。如果我们写入一段可执行的脚本代码,只要过滤不严格的话,同样会被保存在首页中,通过调用执行代码,达到攻击浏览者的目的。下面我们先测试一下这个输入框中能否写入跨站脚本:

在“输入空间名称”输入框中输入上面的代码“<script>alert("测试")</script>”时,发现在输入框中限制了输入字符的长度,总共只能输入24个字符。而且当我们输入许可长度的代码,点击提交后会弹出“请不要在输入中包含"<>等字符”的对话框。看来Q-Zone对用户的输入进行了过滤。

  2、查看Q-Zone的输入过滤方式

  在Q-Zone页面中点击“查看→源文件”,在代码段开始处,可以看见如下代码段:


  有一点点ASP编程基础的用户,相信都可以看懂这段代码吧?在代码中通过“StrLenOfAscii()”函数,获得了用户输入数据ASCⅡ码的长度,除2后赋值给len变量。后面的代码检测len变量长度大于12的话,就提示输入名称太长。最重要的是前面的一句:“if (!checkFormValue(form1)) return false”,其中“checkFormValue()”函数很明显可以推断是用来检测输入数据中是否包含特殊字符的。当检测到数据中包含被过滤的字符时,就弹出了前面所说的对话框。

  通过分析,我们可以肯定Q-Zone是在客户端对用户输入数据进行过滤的。

  Q-Zone跨站漏洞的利用

  即然Q-Zone是在客户端对用户输入数据进行过滤的,那么就给我们留下了可利用的机会。我们可以绕过客户端的限制,直接修改输入数据进行提交。但是Q-Zone对用户提交数据还进行了另外一个限制,就是不允许外站提交,在这里我们保存的HTML文件也无法正常提交数据。因此,我们必须另外想一个办法,修改提交数据。

  1、截获提交数据

  我们先运行一个叫作WSockExpert的软件,运行WSockExpert后点击工具栏上的“打开”按钮,显示当前的进程列表。如果是用QQ的面板打开Q-Zone的,那么在进程列表中选择“QQ.exe→**的家”;如果是用IE打开Q-Zone的,可以在IE进程中找到相应的进程,确定后点击“Open”按钮开始监视与网站服务器交换的数据。

  返回到Q-Zone网页中,在“空间名称”处输入任意可提交的字符如“1234567890”,然后点击“提交”,回到WSockExpert中,点中间列表框中的第3行“send”附近的数据栏,可以看到提交的数据内容:

  “Cookie”是Cookie内容,包含了用户验证的东西;而“spacename=1234567890”就是我们提交的空间名称数据了;前面的“Content-Length: 20”是提交的这段数据的长度。在数据中,还可以看到“Referer: http://q-zone.qq.com/cgi-bin/user/cgi_show_spacename”,这是我们要提交的服务端网页地址。

  2、修改提交数据

  将下面窗口中的提交数据内容全部复制后,保存为一个1.TXT文件,将代码中的“spacename=1234567890”

改为:“spacename=<script>alert("test")</script>”,“Content-Length: 20”改为“Content-Length: 40”

  现在我们只要将这些数据提交到服务器上,就可以绕过客户端对数据的过滤了,这就要用到另外一个叫作NC的工具了。

  将上面保存的“1.txt”复制到与“nc.exe”同一个文件夹中,打开Windows系统中的命令提示符窗口,在命令行下进入NC.exe所在的文件夹,输入“nc -vv q-zone.qq.com 80<1.txt”,命令执行后,就会向远程服务器提交我们修改过的数据了。

  提示:我们可以将“Test”换成任意中文,但是需要先转换为IE编码,例如“测试”的IE编码为“%B2%E2%CA%D4”,具体的转换过程这里就不用多说了。

  3、检测代码执行结果

  打开我们的Q-Zone,此时会自动弹出一个提示窗口。说明我们已经在远程的网页中成功的插入了“<script>alert("test")</script>”这条代码!同时在修改空间名称的页面中,可以看到已提交修改的原来被限制了的空间名称。

QQ空间图片模块使用方法:
1:进入QQ空间管理,点击自定义。
2:点击右侧的新建模块→点击图片模块。
3:模块名称随便,用一个空格最好,图片地址上输入图片的地址,再点击“更多设置”,背景、边框选择无,确定保存。
4:用鼠标调整一下图片的大小,让整个图片完全显示(这一步有时候是不需要的)。
5:接着点击模块管理→把“互动”以上的模块前面的√全部去掉,然后再把需要显示的模块打√,这样“日志”、“留言”、“个人形象”或“音乐收藏”就显示在大图模块的上面了。确定保存。OK!
注意:4.0版QQ空间,选择保留边框,会更美观。大家要多款模板同时使用会更加美观。
QQ空间FLASH动画模块使用方法:
1:进入QQ空间管理,点击自定义。
2:点击右侧的新建模块→点击FLASH动画模块。
3:标题可填,也可以不填,FLASH动画地址写下面的FLASH地址,再点击“更多设置”,边框为无,确定保存。OK!
建议将自己喜欢的Flash或者图片下载到自己的电脑上再上传到自己认为速度快的空间或博客,以免地址失效。

[ ] [返回上一页]
收藏到QQ书签
栏目直达 QQ空大图模块 | QQ空间FLASH | QQ空间代码 | QQ空间素材 | QQ空间FD | QQ空间留言 | QQ空间音乐 | 非主流贴图| 返回顶端
QQ非主流部落

Copyright ©2007 - 2008 2Qzone.org.cn All Rights Reserved
2Qzone.org.cnQQ非主流部落
苏ICP备07006502号 本站长期提供QQ空间代码|QQ空间模块|QQ空间素材