POC详情: 99a91b5654aa3f99879c7ca64e448da2e485a7e8

来源
关联漏洞
标题: Apache Dubbo 代码问题漏洞 (CVE-2020-1948)
描述:Apache Dubbo是美国阿帕奇软件(Apache Software)基金会的一款基于Java的轻量级RPC(远程过程调用)框架。该产品提供了基于接口的远程呼叫、容错和负载平衡以及自动服务注册和发现等功能。 Apache Dubbo 2.7.6及之前版本中的反序列化工具hessian存在安全漏洞。远程攻击者可利用该漏洞执行代码。
描述
Apache Dubbo CVE-2020-1948 漏洞测试环境,亲测可用。
介绍
# Apache Dubbo CVE-2020-1948 测试环境

## 引子

在这个漏洞出现之初,为了验证该漏洞的危害,我们从互联网上搜寻了很多人整理的例子,发现没有一个能够顺利验证该漏洞,故自己搞了一个,放在这里供大家参考,欢迎交流!

本环境基于 Apache Dubbo 官方示例环境改造而来,纠正了官方示例程序中几处编译中报错问题。例如:

- 官方示例代码中应用的 DubboService 类,实际应该 Service。

## 编译

```
cd src
mvn package
```

编译成功后会在 `src/target` 目录生成 `dubbo.jar` 文件。

## 运行

```
java -jar target/dubbo.jar
```

运行成功后,监听 12345 端口,可以使用 `telnet` 命令连接测试。

```
telnet x.x.x.x 12345
# dubbo> ls -l
# PROVIDER:
#     org.apache.dubbo.spring.boot.sample.consumer.DemoService:1.0.0 ->  published: N
```

## 容器化

```
# 构建
docker build -t dsolab/dubbo:cve-2020-1948 .

# 运行
docker run -p 12345:12345 dsolab/dubbo:cve-2020-1948 -d
或
docker-compose up -d

# 访问
telnet x.x.x.x 12345
```

只想快速使用环境(懒得编译环境)的小朋友可以用下面的命令启动我们提供的镜像环境:

```
# 需要安装 Docker 和 docker-compose
docker-compose up -d
```

## 漏洞验证

参见 [Apache Dubbo CVE-2020-1948 反序列化漏洞验证方法](https://github.com/DSO-Lab/Dubbo-CVE-2020-1948/wiki)

## 参考链接

- Dubbo Spring Boot Project

https://github.com/apache/dubbo-spring-boot-project/

- Dubbo Pull Request

https://github.com/apache/dubbo/pull/6374

- Dubbo Mail Archive

https://www.mail-archive.com/dev@dubbo.apache.org/msg06544.html
文件快照
 [4.0K]  /data/pocs/99a91b5654aa3f99879c7ca64e448da2e485a7e8
├── [ 148]  docker-compose.yml
├── [ 315]  Dockerfile
├── [1.6K]  README.md
└── [4.0K]  src
    ├── [4.0K]  dubbo-spring-boot-parent
    │   └── [ 19K]  pom.xml
    ├── [4.0K]  dubbo-spring-boot-samples
    │   ├── [4.0K]  auto-configure-samples
    │   │   ├── [1.6K]  pom.xml
    │   │   └── [4.0K]  provider-sample
    │   │       ├── [3.2K]  pom.xml
    │   │       └── [4.0K]  src
    │   │           └── [4.0K]  main
    │   │               ├── [4.0K]  java
    │   │               │   └── [4.0K]  org
    │   │               │       └── [4.0K]  apache
    │   │               │           └── [4.0K]  dubbo
    │   │               │               └── [4.0K]  spring
    │   │               │                   └── [4.0K]  boot
    │   │               │                       └── [4.0K]  sample
    │   │               │                           └── [4.0K]  provider
    │   │               │                               ├── [4.0K]  bootstrap
    │   │               │                               │   └── [1.5K]  DubboAutoConfigurationProviderBootstrap.java
    │   │               │                               └── [4.0K]  service
    │   │               │                                   └── [2.0K]  DefaultDemoService.java
    │   │               └── [4.0K]  resources
    │   │                   └── [ 515]  application.properties
    │   ├── [3.2K]  pom.xml
    │   └── [4.0K]  sample-api
    │       ├── [1.5K]  pom.xml
    │       └── [4.0K]  src
    │           └── [4.0K]  main
    │               └── [4.0K]  java
    │                   └── [4.0K]  org
    │                       └── [4.0K]  apache
    │                           └── [4.0K]  dubbo
    │                               └── [4.0K]  spring
    │                                   └── [4.0K]  boot
    │                                       └── [4.0K]  sample
    │                                           └── [4.0K]  consumer
    │                                               └── [ 978]  DemoService.java
    └── [7.4K]  pom.xml

29 directories, 13 files
神龙机器人已为您缓存
备注
    1. 建议优先通过来源进行访问。
    2. 如果因为来源失效或无法访问,请发送邮箱到 f.jinxu#gmail.com 索取本地快照(把 # 换成 @)。
    3. 神龙已为您对POC代码进行快照,为了长期维护,请考虑为本地POC付费,感谢您的支持。