Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
CVE-2021-43297-POC — Proof-of-concept exploit per CVE-2021-43297, che consente l'esecuzione remota di codice in Apache Dubbo <= 2.7.13 tramite deserializzazione Hessian-Lite. | Kitploit
Strumenti/GitHubGitHub/bitterzzzz/cve-2021-43297-poc
Analisi delle VulnerabilitàExploitSfruttamento di Applicazioni WebPenetration TestingSviluppo Payload
GitHubbitterzzzz/cve-2021-43297-poc

CVE-2021-43297-POC

Proof-of-concept exploit per CVE-2021-43297, che consente l'esecuzione remota di codice in Apache Dubbo <= 2.7.13 tramite deserializzazione Hessian-Lite.

Vedi Repository
39834 anni faRevisionato da Kitploit

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

CVE-2021-43297

Descrizione della vulnerabilità

Nelle versioni di Dubbo Hessian-Lite 3.2.11 e precedenti esiste un potenziale rischio di attacco RCE. Quando Hessian-Lite incontra un'eccezione di serializzazione, genera informazioni correlate, il che può innescare il metodo toString di alcuni Bean appositamente predisposti, causando un attacco RCE.

Principio

Il POC iniziale poteva realizzare RCE solo su Apache Dubbo<=2.7.8, il principio è descritto nell'articolo di Xianzhi(verrà modificato dopo l'approvazione della revisione). Dopo la pubblicazione, ho continuato le ricerche e ho scoperto che è possibile realizzare RCE su Apache Dubbo<=2.7.13, l'analisi del principio è disponibile nel mio articolo del blog

L'effetto è il seguente

Condizioni di utilizzo del POC:

  • apache dubbo <= 2.7.13 o la versione corrispondente di alibaba dubbo
  • Conoscere l'IP e la porta del provider dubbo, che deve essere accessibile
  • Il provider dubbo deve avere la catena XBean
  • Il server del provider dubbo deve consentire richieste HTTP GET verso l'esterno

Installazione dell'ambiente ed esecuzione del POC

  • Scaricare prima 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
  • Configurazione
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=/percorso_assoluto/zookeeper-3.3.3/data
# the port at which the clients will connect
clientPort=2181
  • Modificare il percorso assoluto e inserire un file myid nella directory data
root@kitploit:~
mkdir data
touch data/myid
  • Avviare zookeeper
root@kitploit:~
cd /private/var/tmp/zookeeper-3.3.3/bin
./zkServer.sh start
  • Installare dubbo-samples-api
root@kitploit:~
git clone https://github.com/apache/dubbo-samples.git
cd dubbo-samples/dubbo-samples-api
  • Modificare 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>
  • Pacchetto xbean

Deve essere installato sia sul lato provider che localmente, la dipendenza è la seguente

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

Aggiungere dubbo-samples-api in IDEA, modificare le porte di zookeeper e dubbo, e modificare il codice in Application.java:

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

Per evitare che le versioni più recenti di dubbo falliscano la connessione a zookeeper a causa di una connessione troppo lenta

Avviare Application.java in dubbo-samples-api da IDEA

Dopo l'avvio, l'output dubbo service started indica che dubbo è stato avviato

  • Eseguire il POC Aggiungere le dipendenze 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>

Compilare ExecTest.java, quindi modificare il percorso di ExecTest.class in HttpServer.java, eseguire il metodo main di HttpServer e infine eseguire il metodo main di HessianLitePoc

Scarica lo strumento