漏洞概要
关注数(24 )
关注此漏洞
漏洞标题:【乌云峰会】网易闪电邮远程命令执行附思路分析
相关厂商:网易
提交时间:2015-07-22 07:35
修复时间:2015-10-23 10:48
公开时间:2015-10-23 10:48
漏洞类型:远程代码执行
危害等级:高
自评Rank:20
漏洞状态:厂商已经确认
Tags标签:
无
漏洞详情 披露状态:
2015-07-22: 细节已通知厂商并且等待厂商处理中 2015-07-25: 厂商已经确认,细节仅向厂商公开 2015-07-28: 细节向第三方安全合作伙伴开放 2015-09-18: 细节向核心白帽子及相关领域专家公开 2015-09-28: 细节向普通白帽子公开 2015-10-08: 细节向实习白帽子公开 2015-10-23: 细节向公众公开
简要描述: 打个卡。
详细说明: 1. 最新版本 2.4 build 1020
2. 首先看看网易闪电邮的结构。
左侧是邮件列表,右侧是邮件查看窗口,该窗口实际上就是一个内嵌的浏览器,分析得知,其中展示的页面为 viewer.html(绿色框框部分), 而邮件正文部分(红色框框部分)则为一个具有临时名称的html文件,(如:tmpmail~2.html),viewer.html通过 iframe 标签嵌入 正文的html文件, 为了避免邮件正文中存在XSS导致相关问题发生,网易闪电邮利用了 iframe的security属性来限制邮件正文html中脚本的执行,如下图所示:
默认使用name="ps1"的iframe来展示邮件正文内容, security="restricted" 限制了该iframe内的html的脚本执行(The security attribute restricts use of the javascript, vbscript, and about protocols in the URL. https://msdn.microsoft.com/en-us/library/ms534622.aspx) 也就是说,我们要执行XSS,得绕过 security="restricted" ,但是这个似乎不太可能。如果是走这个思路,我们的测试到这里就已经结束了。 3. 然而,在继续测试的过程中,我们又发现了一些有意思的点: 用客户端发送一个邮件,插入一个图片。
发送邮件后,来看看接收邮件方的情况:
可以看到,在邮件目录下有几个文件: viewer.html: 上文提到的邮件展示页面 tmpmail~7.html: 邮件正文内容页面 mail.js: 邮件概要信息 pkav.png: 发送时插入的图片 4. 上面这4个文件有什么问题呢? 首先,邮件展示页 viewer.html 在该邮件目录下, 然后,插入的pkav.png 也在该邮件目录下。 那么,如果我们插入一个“图片”,名字叫做 viewer.html,会不会覆盖掉原有的viewer.html,从而导致viewer.html加载我们的代码呢? 这里有两种可能性, A. 程序先COPY一份正常的viewer.html到邮件目录下,然后程序将“viewer.html”图片下载到邮件目录中,覆盖掉原有的viewer.html,导致问题。 B. 程序先将“viewer.html”图片下载到邮件目录中,然后COPY一份正常的viewer.html到邮件目录下,覆盖了“假”的viewer.html,viewer.html被覆盖为正常,不会导致问题。 为了测试是A还是B,我们复制一份viewer.html,做一些修改,如下:
还是和上面一样,将此文件当作图片插入到邮件中,然后进行发送。
如上图所示,我们插入的代码不见了。 这说明,程序走的是B流程,看样子这么不会存在问题了。。 5. 然而,在viewer.html的末尾却发现了一些问题:
可以看到,B流程里的覆盖操作,并非是拿程序里的viewer.html模板直接覆盖邮件目录下的viewer.html,而是某种“神秘”的写入操作。 为什么说是“神秘”,因为多次测试后,并未发现明显的写入规律,不知道末尾产生的这段多余的机制是如何进行的。 但是,如果我们把“恶意代码”追加到viewer.html的时候,就会发现我们追加的“恶意代码”会被留在viewer.html结尾。 构造的恶意viewer.html如下图:
收到邮件后,得到的viewer.html如下(左侧是收到的,右侧是发送的):
并且,收到邮件的时候,可以看到alert(1)被执行了。
----------------------------------------- 到了这里,我们得到了一个XSS的执行权限,怎么进一步利用呢? ----------------------------------------- 6. 首先考虑的就是会不会有命令执行? 经过一番琢磨后,注意到了邮箱的附件功能。 附件有一个双击执行的功能。
看似很理所当然对吧? 然而,这是一个用HTML来实现的邮件展示界面,HTML来要实现直接执行exe是不可行的,那么说明该html的容器(嵌入的浏览器)中必然实现了一些API接口来实现执行附件的功能。 浏览器扩展的api一般都是在external对象上添加的,因此我们就到viewer.js里去搜索external
可以看到,我们定位到了附件双击功能,确实对应着一条external的函数onAttachmentDblClicked,该函数有一个参数,并且是整数数字,试着推测了一下,该参数表示“第几个附件”的含义。 7. 基于此,我们将此前的alert(1)的代码修改一下,在viewer.html末尾加上:
<script> external.onAttachmentDblClicked(0); </script> <style> #at-list{display:none} </style>
其中 #at-list{display:none} 这条CSS 是为了隐藏邮件中看起来可疑的附件列表, 如图所示:
然后用客户端发送邮件,把修改后的viewer.html当作图片加入, 编写一个 111.wsf 脚本文件:
见测试代码部分
然后,把111.wsf当作附件添加到邮件中, 最后,发送邮件。
8. 收到邮件,点开邮件后, external.onAttachmentDblClicked(0); 被执行, 第一个附件相当于被双击,执行 即,111.wsf中的命令被执行:
漏洞证明: 修复方案: 漏洞回应 厂商回应: 危害等级:高
漏洞Rank:15
确认时间:2015-07-25 10:47
厂商回复: 非常感谢白帽子细致的分析,漏洞已修复,并更新到官网,感谢您对网易的关注!
最新状态: 暂无
漏洞评价:
评论
2015-07-22 07:36 |
xsser ( 普通白帽子 | Rank:254 漏洞数:18 | 当我又回首一切,这个世界会好吗?)
2015-07-22 07:37 |
末影人 ( 实习白帽子 | Rank:35 漏洞数:9 | 末影人(Enderman)是一个三个方格高的人形生...)
2015-07-22 07:39 |
bitcoin ( 普通白帽子 | Rank:715 漏洞数:218 | 学习是最好的投资!)
2015-07-22 07:41 |
Looke ( 普通白帽子 | Rank:690 漏洞数:97 | 可顺势而为,何必逆水行舟)
2015-07-22 07:48 |
子墨 ( 普通白帽子 | Rank:194 漏洞数:22 | 天地不仁,以万物为刍狗;圣人不仁,以百姓为...)
2015-07-22 07:49 |
DloveJ ( 普通白帽子 | Rank:1107 漏洞数:200 | <a href=javascrip:alert('xss')>s</a> 点...)
2015-07-22 08:06 |
泪雨无魂 ( 普通白帽子 | Rank:133 漏洞数:43 )
2015-07-22 08:11 |
_Thorns ( 普通白帽子 | Rank:982 漏洞数:170 )
2015-07-22 08:40 |
Ton7BrEak ( 普通白帽子 | Rank:211 漏洞数:43 | 吃苦耐劳,我只会第一个!)
2015-07-22 08:44 |
px1624 ( 普通白帽子 | Rank:1038 漏洞数:176 | px1624)
2015-07-22 08:50 |
子非海绵宝宝 ( 核心白帽子 | Rank:1144 漏洞数:114 | 发扬海绵宝宝的精神!你不是海绵宝宝,你怎...)
2015-07-22 08:57 |
Aaron ( 路人 | Rank:16 漏洞数:6 | 花开遍地,终为一代大侠。)
2015-07-22 08:58 |
甲鱼 ( 路人 | Rank:28 漏洞数:3 | 慢慢爬……)
2015-07-22 08:59 |
scanf ( 核心白帽子 | Rank:1307 漏洞数:190 | 。)
2015-07-22 09:09 |
Stardustsky ( 路人 | Rank:4 漏洞数:3 | ……)
2015-07-22 09:14 |
Hyjal ( 实习白帽子 | Rank:44 漏洞数:11 | 挖掘机)
2015-07-22 09:16 |
牛 小 帅 ( 普通白帽子 | Rank:433 漏洞数:100 | 什么狗屁爱,生活已乱套!人的一生中,...)
2015-07-22 09:38 |
无敌L.t.H ( 路人 | Rank:21 漏洞数:4 | ……肉肉捉活,亭长放解)
2015-07-22 09:54 |
浅蓝 ( 普通白帽子 | Rank:274 漏洞数:109 | 爱安全:www.ixsec.orgXsec社区:zone.ixse...)
2015-07-22 09:55 |
YxWa ( 路人 | Rank:2 漏洞数:5 | 颠儿颠儿的小跑中...)
2015-07-22 10:01 |
卡卡 ( 普通白帽子 | Rank:461 漏洞数:54 | <script>alert('安全团队长期招人')</scrip...)
2015-07-22 10:05 |
Wulala ( 普通白帽子 | Rank:227 漏洞数:24 | ^..^ ^..^ ^↓^ ^..^ ^..^)
2015-07-22 10:13 |
猪猪侠 ( 核心白帽子 | Rank:3451 漏洞数:269 | 你都有那么多超级棒棒糖了,还要自由干吗?)
2015-07-22 10:16 |
举起手来 ( 普通白帽子 | Rank:581 漏洞数:61 | 准备好,举起手来!)
2015-07-22 10:22 |
安全小飞侠 ( 实习白帽子 | Rank:75 漏洞数:12 | 安全小飞侠就是我,我就是安全小飞侠!)
2015-07-22 10:29 |
ppt ( 路人 | Rank:11 漏洞数:2 | ) | ( 我猜出了用户名,可我没猜出密码。)
2015-07-22 10:38 |
小呆呆 ( 实习白帽子 | Rank:41 漏洞数:7 | 每次有人骂我猪我都说我偶像也是猪)
2015-07-22 12:33 |
泳少 ( 普通白帽子 | Rank:231 漏洞数:79 | ★ 梦想这条路踏上了,跪着也要...)
2015-07-22 13:49 |
只抽红梅 ( 普通白帽子 | Rank:165 漏洞数:14 | 红梅花儿开,我从帝都来!)
2015-07-22 14:59 |
无名 ( 实习白帽子 | Rank:41 漏洞数:9 | 我是一只小菜鸟呀,伊雅伊尔哟。)
2015-07-22 16:06 |
lxj616 ( 普通白帽子 | Rank:438 漏洞数:90 | <hohoho>)
2015-07-22 16:40 |
秋风 ( 普通白帽子 | Rank:438 漏洞数:44 | 码农一枚,关注互联网安全)
2015-07-22 16:57 |
’‘Nome ( 实习白帽子 | Rank:55 漏洞数:19 | 在此感谢 @M4sk @mango @裤裆 @泳少 @5up3r...)
2015-07-22 18:18 |
带头大哥 ( 普通白帽子 | Rank:289 漏洞数:95 | 很早前,我就有个梦想。哪一天能站在国家会...)
2015-07-22 18:28 |
从容 ( 普通白帽子 | Rank:221 漏洞数:75 | Enjoy Hacking Just Because It's Fun :) ...)
2015-07-22 19:33 |
Q1NG ( 普通白帽子 | Rank:101 漏洞数:18 | 临 兵 斗 者 皆 阵 列 前 行 !)
2015-07-22 20:34 |
f4ckbaidu ( 普通白帽子 | Rank:189 漏洞数:25 | 开发真是日了狗了)
2015-07-22 20:37 |
晏子 ( 路人 | Rank:6 漏洞数:4 | 无)
2015-07-22 20:55 |
niliu ( 核心白帽子 | Rank:1540 漏洞数:207 | 逆流而上)
2015-07-22 21:49 |
Fire ant ( 实习白帽子 | Rank:73 漏洞数:26 | 他们回来了................)
2015-07-22 22:28 |
Mr.R ( 实习白帽子 | Rank:52 漏洞数:14 | 求大神带我飞 qq2584110147)
2015-07-22 23:14 |
乐乐、 ( 普通白帽子 | Rank:868 漏洞数:189 )
2015-07-23 09:40 |
牛 小 帅 ( 普通白帽子 | Rank:433 漏洞数:100 | 什么狗屁爱,生活已乱套!人的一生中,...)
2015-07-23 13:01 |
青青 ( 路人 | Rank:0 漏洞数:1 | 你好)
2015-07-23 19:50 |
庙口大王 ( 路人 | Rank:30 漏洞数:6 | 呵呵)
2015-07-23 21:10 |
南柯太守 ( 路人 | Rank:2 漏洞数:1 | 专注web开发的安全入门者)
2015-07-25 10:51 |
乌云首席鉴黄师 ( 普通白帽子 | Rank:195 漏洞数:64 | 妈妈,我要上电视)
2015-07-25 11:42 |
大师兄 ( 路人 | Rank:14 漏洞数:6 | 每日必关注乌云)
2015-07-29 15:49 |
天鱼 ( 实习白帽子 | Rank:47 漏洞数:5 | 逝去的梦)
2015-09-13 00:35 |
Raven ( 路人 | Rank:4 漏洞数:1 | 挖洞不易,且挖且珍惜)