最近,360天眼安全实验室接到用户反馈,表示其收到如下内容的钓鱼邮件:
经过分析,确定为此邮件为利用QQ邮箱的未公开跨站漏洞实施的一次钓鱼攻击。
截止到发稿为止,QQ邮箱已经修复了这个跨站漏洞。
下面是该漏洞的一些细节:
点开文中的云盘链接之后发现页面为一个空页面,但是查看其源代码后发现攻击代码:
代码部分:
http://open.mail.qq.com/cgi-bin/dy_preview?column_id=1445100421t3853355936t31244&
column_url=
远程XML
的地址
&column_img_url=&t=unite_tmpl_magazine&qqtype=lockKey10
本次出问题的模块为QQ邮箱的邮件订阅预览功能,该功能允许加载一个远程可控的XML文件,但是在解析远程xml文档,生成邮件预览页时,没有严格校验输入数据,从而导致跨站的发生。
上文中POC的column_url即为远程可控的XML文件,该文件结构如下图:
由于程序为未对link字段的输入数据进行严格校验而导致跨站。link标签的数据在生成邮件预览页的过程中会被readOriginalLink函数处理:
从上图中可以看到,readOriginalLink未对传入的参数aF进行任何校验,直接写入到了document对象中,此时的document.documentElement.innerHTML如下:
可见img标签已经成功被我们控制,从而使本次跨站可以成功实施。
下图为我们模拟的一次攻击过程所截获的用户邮箱Cookie:
巧合的是,就在本文准备发表之前,FreeBuf上出现了另外一篇分析文章,受害者收到的钓鱼邮件内容几乎与本文相同
但是使用的跨站漏洞与本次的不同。由此推测,此事件幕后是一个完整的产业链,攻击者手里可能还握有其他未知的QQ邮箱跨站漏洞。
截止到发文为止,360天眼安全实验室还发现了位于qq.com域下的另外一个跨站漏洞,此漏洞已通过360补天平台提交给官方,在漏洞修复前细节暂不公布。
最后360天眼安全实验室提醒各位QQ邮箱的用户,一定要慎点QQ邮箱中来历不明的邮件。
企业可以通过这种以下方式来防御xss。

评论