Q-Zone跨站入侵漏洞的详细分析与利用
2006-11-07 20:08:59 来源:WEB开发网核心提示:技术点:CSS跨站漏洞用户输入过滤方式 修改IE提交数据 跨站盗取COOKIE前不久,腾讯新推出的网络空间“Q-ZONE”暴出了存在跨站漏洞,Q-Zone跨站入侵漏洞的详细分析与利用,很难想象,一项新推出的业务居然如果脆弱,其中“checkFormValue()”函数很明
技术点: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()”函数很明显可以推断是用来检测输入数据中是否包含特殊字符的。当检测到数据中包含被过滤的字符时,就弹出了前面所说的对话框。
[]
更多精彩
赞助商链接