Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
CVE-2021-43297-POC — Prueba de concepto de exploit para CVE-2021-43297, que logra ejecución remota de código en Apache Dubbo <= 2.7.13 mediante deserialización Hessian-Lite. | Kitploit
Herramientas/GitHubGitHub/bitterzzzz/cve-2021-43297-poc
Análisis de VulnerabilidadesExplotaciónExplotación de Aplicaciones WebPruebas de PenetraciónDesarrollo de Payloads
GitHubbitterzzzz/cve-2021-43297-poc

CVE-2021-43297-POC

Prueba de concepto de exploit para CVE-2021-43297, que logra ejecución remota de código en Apache Dubbo <= 2.7.13 mediante deserialización Hessian-Lite.

Ver Repositorio
398hace 4 añosRevisado por Kitploit

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

CVE-2021-43297

Descripción de la vulnerabilidad

Existe un riesgo potencial de ataque RCE en Dubbo Hessian-Lite 3.2.11 y versiones anteriores. Cuando Hessian-Lite encuentra una excepción de serialización, genera información relacionada, lo que puede provocar la invocación del método toString de ciertos Beans maliciosamente personalizados, desencadenando así un ataque RCE.

Principio

El POC inicial solo podía lograr RCE en Apache Dubbo<=2.7.8, el principio se describe en el artículo de先知(se modificará después de la aprobación de la revisión). Después de la presentación, seguí investigando y logré implementar RCE en Apache Dubbo<=2.7.13, el análisis del principio se encuentra en mi artículo de blog

El efecto es el siguiente

Condiciones de uso del POC:

  • apache dubbo <= 2.7.13 o la versión correspondiente de alibaba dubbo
  • Conocer la IP y el puerto del proveedor de dubbo, y poder acceder a él
  • El proveedor de dubbo tiene la cadena XBean
  • El servidor del proveedor de dubbo permite solicitudes HTTP GET salientes

Instalación del entorno y ejecución del POC

  • Primero descargar zookeeper
root@kitploit:~
wget http://archive.apache.org/dist/zookeeper/zookeeper-3.3.3/zookeeper-3.3.3.tar.gz
tar zxvf zookeeper-3.3.3.tar.gz
cd zookeeper-3.3.3
cp conf/zoo_sample.cfg conf/zoo.cfg
  • Configuración
root@kitploit:~
vim conf/zoo.cfg
# The number of milliseconds of each tick
tickTime=2000
# The number of ticks that the initial
# synchronization phase can take
initLimit=10
# The number of ticks that can pass between
# sending a request and getting an acknowledgement
syncLimit=5
# the directory where the snapshot is stored.
dataDir=/ruta_absoluta/zookeeper-3.3.3/data
# the port at which the clients will connect
clientPort=2181
  • Modificar la ruta absoluta y colocar un archivo myid en el directorio data
root@kitploit:~
mkdir data
touch data/myid
  • Iniciar zookeeper
root@kitploit:~
cd /private/var/tmp/zookeeper-3.3.3/bin
./zkServer.sh start
  • Instalar dubbo-samples-api
root@kitploit:~
git clone https://github.com/apache/dubbo-samples.git
cd dubbo-samples/dubbo-samples-api
  • Modificar dubbo-samples/dubbo-samples-api/pom.xml
root@kitploit:~
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>org.example</groupId>
    <artifactId>dubbomytest</artifactId>
    <packaging>pom</packaging>
    <version>1.0-SNAPSHOT</version>
    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <configuration>
                    <source>8</source>
                    <target>8</target>
                </configuration>
            </plugin>
        </plugins>
    </build>


    <properties>
        <source.level>1.8</source.level>
        <target.level>1.8</target.level>
        <dubbo.version>2.7.6</dubbo.version>
        <junit.version>4.12</junit.version>
        <docker-maven-plugin.version>0.30.0</docker-maven-plugin.version>
        <jib-maven-plugin.version>1.2.0</jib-maven-plugin.version>
        <maven-compiler-plugin.version>3.7.0</maven-compiler-plugin.version>
        <maven-failsafe-plugin.version>2.21.0</maven-failsafe-plugin.version>
        <image.name>${project.artifactId}:${dubbo.version}</image.name>
        <java-image.name>openjdk:8</java-image.name>
        <dubbo.port>20880</dubbo.port>
        <zookeeper.port>2181</zookeeper.port>
        <main-class>org.apache.dubbo.samples.provider.Application</main-class>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.apache.dubbo</groupId>
            <artifactId>dubbo</artifactId>
            <version>2.7.3</version>
        </dependency>
        <dependency>
            <groupId>org.apache.dubbo</groupId>
            <artifactId>dubbo-common</artifactId>
            <version>2.7.3</version>
        </dependency>

        <dependency>
            <groupId>org.apache.dubbo</groupId>
            <artifactId>dubbo-dependencies-zookeeper</artifactId>
            <version>2.7.3</version>
            <type>pom</type>
        </dependency>
        <dependency>
            <groupId>org.apache.xbean</groupId>
            <artifactId>xbean-naming</artifactId>
            <version>4.15</version>
        </dependency>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>${junit.version}</version>
            <scope>test</scope>
        </dependency>

    </dependencies>

</project>
  • Paquete xbean

Tanto el lado del proveedor como el local deben instalarlo, la dependencia es la siguiente

root@kitploit:~
<dependency>
    <groupId>org.apache.xbean</groupId>
    <artifactId>xbean-naming</artifactId>
    <version>4.15</version>
</dependency>
  • Compilar e iniciar

Agregar dubbo-samples-api en IDEA, prestar atención a modificar los puertos de zookeeper y dubbo, además modificar el código en Application.java:

root@kitploit:~
service.setRegistry(new RegistryConfig("zookeeper://" + zookeeperHost + ":" + zookeeperPort+"/?timeout=250000"));

Para evitar que las versiones altas de dubbo fallen al conectar con zookeeper por ser demasiado lentas

Iniciar Application.java en dubbo-samples-api dentro de IDEA

Después del inicio, si se muestra dubbo service started, significa que dubbo se ha iniciado correctamente

  • Ejecutar el POC Agregar dependencias localmente:
root@kitploit:~
<dependency>
   <groupId>org.apache.dubbo</groupId>
   <artifactId>dubbo-common</artifactId>
   <version>2.7.3</version>
</dependency>
<dependency>
   <groupId>org.apache.dubbo</groupId>
   <artifactId>dubbo</artifactId>
   <version>2.7.3</version>
</dependency>
<dependency>
   <groupId>org.apache.dubbo</groupId>
   <artifactId>dubbo-dependencies-zookeeper</artifactId>
   <version>2.7.3</version>
   <type>pom</type>
</dependency>
<dependency>
   <groupId>com.caucho</groupId>
   <artifactId>hessian</artifactId>
   <version>4.0.51</version>
</dependency>

Compilar ExecTest.java, luego modificar la ruta de ExecTest.class en HttpServer.java, después ejecutar el método main de HttpServer y finalmente ejecutar el método main de HessianLitePoc

Descargar herramienta