漏洞概要 关注数(24) 关注此漏洞
缺陷编号:wooyun-2016-0188237
漏洞标题:dubbo中间件存在Java反序列化命令执行风险
相关厂商:阿里巴巴
漏洞作者: 隐形人真忙
提交时间:2016-03-23 19:13
修复时间:2016-06-26 19:00
公开时间:2016-06-26 19:00
漏洞类型:远程代码执行
危害等级:高
自评Rank:20
漏洞状态:厂商已经确认
漏洞来源: http://www.wooyun.org,如有疑问或需要帮助请联系 [email protected]
Tags标签: 无
漏洞详情
披露状态:
2016-03-23: 细节已通知厂商并且等待厂商处理中
2016-03-28: 厂商已经确认,细节仅向厂商公开
2016-03-31: 细节向第三方安全合作伙伴开放(绿盟科技、唐朝安全巡航、无声信息)
2016-05-22: 细节向核心白帽子及相关领域专家公开
2016-06-01: 细节向普通白帽子公开
2016-06-11: 细节向实习白帽子公开
2016-06-26: 细节向公众公开
简要描述:
dubbo中间件存在命令执行的风险
详细说明:
-----------------
0x00 dubbo 简介
------------------
Dubbo是阿里巴巴提供的一个开源的分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案。
与传统的webservice不同,dubbo可以集中管理各个服务提供者、消费者集群,并提供注册中心、性能监控和管理后台等功能。
官网:http://**.**.**.**/Home-zh.htm
------------------------
0x01 dubbo的RMI调用方式
------------------------
RMI就是java程序中普遍使用的一种远程过程调用的接口,用于实现远程方法的调用。
Dubbo号称无侵入的API,甚至只需要JDK支持。这不禁让我想到dubbo这种远程service管理系统难不成会少了RMI的身影?
看了一下dubbo的源码,发现dubbo存在多个协议的支持:
不出所料,果然是支持RMI协议。来看一下dubbo里的实现:
使用了Spring的RMI创建方式,底层实现还是原生RMI,如果server端使用了不安全的lib,就会造成RMI方式的反序列化漏洞。
----------------------------------
0x02 dubbo RMI模式下的反序列化漏洞
-----------------------------------
本地搭建起dubbo服务,使用zookeeper作为注册中心,protocol选择为:
开启RMI服务之后,就会在dubbo控制台上看到服务信息:
使用ysoserial.jar提供的RMI注册类执行命令,这里使用了cloudeye进行辅助测试:
关于RMI的反序列化执行,可以看看zone上有人发的帖子,想了解原理,可以看绿盟发的分析文:http://**.**.**.**/java-deserialization-vulnerability-overlooked-mass-destruction/
Cloudeye收到信息:
--------------
0x03 小彩蛋
---------------
在测试的途中,发现了不少dubbo的监控组件暴露,并且互联网上存在很多弱口令的dubbo-admin(默认用户名/密码为root)。
两个小例子:
**.**.**.**:8090/governance/services/jackjboss/com.chsoft.shiro.facade.UserService/providers/615
**.**.**.**:8080/governance/services/com.alibaba.dubbo.monitor.MonitorService/providers/40
漏洞证明:
见详细说明
修复方案:
针对rmi协议模式做一些过滤处理
版权声明:转载请注明来源 隐形人真忙@乌云
漏洞回应
厂商回应:
危害等级:中
漏洞Rank:8
确认时间:2016-03-28 18:59
厂商回复:
您好,问题已经确认,正在修复中。感谢您对阿里安全的关注和支持。
最新状态:
暂无