漏洞概要 关注数(24) 关注此漏洞
缺陷编号:wooyun-2015-0106776
漏洞标题:利用FoxMail持久型XSS漏洞偷取任意的邮件内容或执行任意代码等
相关厂商:腾讯
漏洞作者: Tea
提交时间:2015-04-09 11:38
修复时间:2015-07-08 17:04
公开时间:2015-07-08 17:04
漏洞类型:远程代码执行
危害等级:高
自评Rank:20
漏洞状态:厂商已经确认
漏洞来源: http://www.wooyun.org,如有疑问或需要帮助请联系 [email protected]
Tags标签: 无
漏洞详情
披露状态:
2015-04-09: 细节已通知厂商并且等待厂商处理中
2015-04-09: 厂商已经确认,细节仅向厂商公开
2015-04-12: 细节向第三方安全合作伙伴开放
2015-06-03: 细节向核心白帽子及相关领域专家公开
2015-06-13: 细节向普通白帽子公开
2015-06-23: 细节向实习白帽子公开
2015-07-08: 细节向公众公开
简要描述:
你以为FOXMAIL的XSS就只能弹框么。。
详细说明:
这个不是站在
WooYun: Foxmail邮箱客户端持久型XSS跨站脚本攻击漏洞(收邮件就触发)
研究的问题,是去年提交了TSRC以后更新版本后绕过一些问题的东西。
测试版本,最新版本7.2 build 6.0.40
本报告不包含以前版本的利用信息。
PS:因为软件更新以后在TSRC提交的问题已经修护,后面版本产生的问题算为新问题(跟TSRC工作人员确认过了,他们也认为我以前提交的问题修护了)
新问题,就换个地方提了。
还有一点就是,
这个地方后面更新了小版本号,这里一直没有更新时间,而且FOXMAIL里面的更新是更新不到最新的小版本号版本的,诡异
下面就来说说问题的情况了。
其实FOXMAIL就类似是一个大的浏览器,里面CSS,JS,HTML都解析。
然后呢,FOXMIAL里面加载了Jquery的。这里可以做下判断看看。
这里会方便后面获取任意邮件的内容什么的。
具体可以看:
mail_frame.html
里面加载的JS。。
/Template/Conversation/Javascript/Main.js
这个JS里面有很多好玩的方法,发邮件,打开邮件,菜单,快速回复等。
自己看看功能
比如:
window.J2D_WriteLog() 写日志,这个会写内容到一个文本文件在FOXMAIL目录的子目录
window.J2D_PopupCompose(4294968029, 'Ni,Hao.') 可以直接打开写信窗口
window.J2D_ChangeTopState(4294968029, 1) 给邮件置顶
window.J2D_ContinueXSend(mailid) 触发快速回复,这个会直接发送回邮件
上面这些截图就不截了,自己可以去玩。。
在FOXMAIL里面标记一个邮件用到的是mailid.
如何获取这个mailid呢。我们可以用如下的方法获取到:
在发送邮件过去以后,收到邮件后就有了
我们的目标是偷任意的邮件内容。
但是能执行代码的为什么不执行呢。。
这里先给出触发这个XSS的POC:
测试代码里面。。
FOXMAIL邮件查看页面里面还启用了CSP..
好了,我们下面说怎么获取任意的邮箱内容了。
前面说了,$ajax是有的,方便了我们后面获取邮件内容发送出去。。
后面我们会把内容GET出去(这里只作验证)更猥琐的大牛自行完善。。
以下只给出结果,过程就不说了,会跟以前的问题重复,怕挨打。。
先个几个短的JS功能:
/*实现获得当前MAILID,然后遍历几个MAILID,打开其他的邮件,并且插入'c'*/
开始在这里逗留了很久,一直找不到直接转其他邮件并且把收件人或者CC人改变为自己控制的邮箱的方法,不然你发送一个邮箱,对面一触发再给你转过来,也是没得意义的事情。
window.J2D_PopupCompose(minmid, 'c')这个方法的实现就是,打开其他邮件通过mailid控制,并且插入后面跟的内容。比如上面的"c".
这下猥琐的思路就来了。。
XSS触发-->获取当前mailid-->打开其他邮件-->在其他邮件内容出插入新XSS代码-->XSS代码在新页面执行
以上就是利用的流程了。
还有一个FOXMAIL的mailid(我测试自己不同机器)总是以相同的一个 mailid开始,然后增加。所以,只是玩玩的话,可以猜几个 mailid玩玩。
给出获取内容的JS(只是测试):
//$('blockquote').html 这里用这个是因为测试的时候这里方便
然后给出最后的POC:
其实利用代码太粗糙,可以好好改改,但是测试能用,证明问题就行了。
漏洞证明:
GET到服务器出邮件内容:
这里是查询远程服务器日志的内容(GET出去的邮件内容)
要想多偷邮件,就用上面的For循环多循环就OK了。
传出去用户像是不知道,但是一下邮箱打开很多其他邮件的框框还是很可疑的,暂时做不到静默偷取。。
如这种框框。。会很多。
修复方案:
window.open("*.exe")这个很容易绕过。exe后面跟/或者.等
CSP 其他的都有完善了,object-src没有完善好。
最好是可以让用户插入的XSS代码全部都假死。过滤够。
版权声明:转载请注明来源 Tea@乌云
漏洞回应
厂商回应:
危害等级:高
漏洞Rank:20
确认时间:2015-04-09 17:02
厂商回复:
非常感谢您的报告,问题已着手处理,感谢大家对腾讯业务安全的关注。如果您有任何疑问,欢迎反馈,我们会有专人跟进处理。
最新状态:
暂无