|
前不久,腾讯新推出的网络空间“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) { |
| 以下是引用片段: “Content-Length: 20 Cookie: pvid=1575119174; portalentryurl=http://vnet.qq.com/hn/; zzpaneluin=41346583; zzpanelkey=753923CF61AB165D613966B82F8E7F6B2D9E5A681CE750 7E9A677086A89BC6DD; clientver=1305; skey=; uin=g0 spacename=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>”这条代码!同时在修改空间名称的页面中,可以看到已提交修改的原来被限制了的空间名称。
| 一次通过 Oracle8i 入侵系统之旅 | 03-21 |
| SA权限下的思路变通 | 03-18 |
| 有防火墙的网站整个入侵过程 | 01-21 |
| 绕过Xplog70.dll玩入侵 | 01-14 |
| 一步一步的入侵----only for you | 01-09 |
| 入侵中快速获得Web根目录的技巧 | 01-09 |
| 记一次对RedHat Linux系统的安全 | 01-08 |
| 介绍几个小工具和入侵的技法(2) | 01-08 |
| 有防火墙的网站整个入侵过程 | 01-04 |
| 拐弯入侵虚拟主机 | 01-04 |
| 由一次入侵实例看虚拟主机系统的 | 01-02 |
| 解读IDS入侵检测系统术语 | 01-02 |