Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
CVE-2021-43297-POC — Prova de conceito de exploit para CVE-2021-43297, alcançando execução remota de código no Apache Dubbo <= 2.7.13 via desserialização Hessian-Lite. | Kitploit
Ferramentas/GitHubGitHub/bitterzzzz/cve-2021-43297-poc
Análise de VulnerabilidadesExploraçãoExploração de Aplicações WebTestes de PenetraçãoDesenvolvimento de Payloads
GitHubbitterzzzz/cve-2021-43297-poc

CVE-2021-43297-POC

Prova de conceito de exploit para CVE-2021-43297, alcançando execução remota de código no Apache Dubbo <= 2.7.13 via desserialização Hessian-Lite.

Ver Repositório
398há 4 anosRevisado pelo Kitploit

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

CVE-2021-43297

Descrição da Vulnerabilidade

Existe um risco potencial de ataque RCE no Dubbo Hessian-Lite 3.2.11 e versões anteriores. Quando o Hessian-Lite encontra uma exceção de serialização, ele gera informações relacionadas, o que pode levar à execução do método toString de certos Beans maliciosamente personalizados, resultando em um ataque RCE.

Princípio

O POC inicial só conseguia realizar RCE no Apache Dubbo<=2.7.8. O princípio pode ser visto no artigo do Xianzhi (será modificado após aprovação da revisão). Após a submissão, continuei pesquisando e descobri que é possível realizar RCE no Apache Dubbo<=2.7.13. A análise do princípio pode ser vista no meu artigo do blog

O efeito é o seguinte

Condições de uso do POC:

  • apache dubbo <= 2.7.13 ou versão correspondente do alibaba dubbo
  • Saber o IP e a porta do provider do dubbo, e conseguir acessá-lo
  • O provider do dubbo possui a cadeia XBean
  • O servidor do provider do dubbo permite requisições HTTP GET de saída

Instalação do Ambiente e Execução do POC

  • Primeiro, baixe o 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
  • Configuração
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=/caminho_absoluto/zookeeper-3.3.3/data
# the port at which the clients will connect
clientPort=2181
  • Modifique o caminho absoluto e coloque um arquivo myid no diretório data
root@kitploit:~
mkdir data
touch data/myid
  • Inicie o zookeeper
root@kitploit:~
cd /private/var/tmp/zookeeper-3.3.3/bin
./zkServer.sh start
  • Instale o dubbo-samples-api
root@kitploit:~
git clone https://github.com/apache/dubbo-samples.git
cd dubbo-samples/dubbo-samples-api
  • Modifique o 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>
  • Pacote xbean

Tanto o lado do provider quanto o local precisam instalá-lo. Dependência:

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

Adicione o dubbo-samples-api no IDEA. Observe que é necessário modificar as portas do zookeeper e do dubbo. Além disso, modifique o código no Application.java:

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

Isso evita que versões mais recentes do dubbo falhem ao conectar ao zookeeper devido à lentidão na conexão

Inicie o Application.java do dubbo-samples-api no idea

Após a inicialização, a saída dubbo service started indica que o dubbo foi iniciado

  • Executar o poc Adicione as dependências 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>

Compile o ExecTest.java, em seguida modifique o caminho do ExecTest.class no HttpServer.java, depois execute o método main do HttpServer e, por fim, execute o método main do HessianLitePoc.

Baixar ferramenta