
Exploit pour CVE-2021-30180 ciblant le framework RPC Apache Dubbo, permettant l'exécution de code à distance via des requêtes RPC spécialement conçues dans les versions vulnérables.
Apache Dubbo est un framework RPC open source haute performance basé sur Java. Veuillez consulter le site officiel pour un démarrage rapide et la documentation, ainsi que le wiki pour les actualités, la FAQ et les notes de version.
Nous collectons actuellement des informations sur les utilisateurs de Dubbo afin de nous aider à améliorer Dubbo davantage. Merci de nous soutenir en complétant vos informations sur issue#1012 : Wanted : qui utilise Dubbo, merci :)

L'extrait de code suivant provient de Dubbo Samples. Vous pouvez cloner le projet d'exemple et vous placer dans le sous-répertoire dubbo-samples-api avant de continuer.
# git clone https://github.com/apache/dubbo-samples.git
# cd dubbo-samples/java/dubbo-samples-api
Un fichier README se trouve dans le répertoire dubbo-samples-api. Nous vous recommandons de consulter les exemples de ce répertoire en suivant les instructions mentionnées ci-dessous :
<properties>
<dubbo.version>2.7.8</dubbo.version>
</properties>
<dependencies>
<dependency>
<groupId>org.apache.dubbo</groupId>
<artifactId>dubbo</artifactId>
<version>${dubbo.version}</version>
</dependency>
<dependency>
<groupId>org.apache.dubbo</groupId>
<artifactId>dubbo-dependencies-zookeeper</artifactId>
<version>${dubbo.version}</version>
<type>pom</type>
</dependency>
</dependencies>
package org.apache.dubbo.samples.api;
public interface GreetingsService {
String sayHi(String name);
}
Voir api/GreetingsService.java sur GitHub.
package org.apache.dubbo.samples.provider;
import org.apache.dubbo.samples.api.GreetingsService;
public class GreetingsServiceImpl implements GreetingsService {
@Override
public String sayHi(String name) {
return "hi, " + name;
}
}
Voir provider/GreetingsServiceImpl.java sur GitHub.
package org.apache.dubbo.samples.provider;
import org.apache.dubbo.config.ApplicationConfig;
import org.apache.dubbo.config.RegistryConfig;
import org.apache.dubbo.config.ServiceConfig;
import org.apache.dubbo.samples.api.GreetingsService;
import java.util.concurrent.CountDownLatch;
public class Application {
private static String zookeeperHost = System.getProperty("zookeeper.address", "127.0.0.1");
public static void main(String[] args) throws Exception {
ServiceConfig<GreetingsService> service = new ServiceConfig<>();
service.setApplication(new ApplicationConfig("first-dubbo-provider"));
service.setRegistry(new RegistryConfig("zookeeper://" + zookeeperHost + ":2181"));
service.setInterface(GreetingsService.class);
service.setRef(new GreetingsServiceImpl());
service.export();
System.out.println("dubbo service started");
new CountDownLatch(1).await();
}
}
Voir provider/Application.java sur GitHub.
# mvn clean package
# mvn -Djava.net.preferIPv4Stack=true -Dexec.mainClass=org.apache.dubbo.samples.provider.Application exec:java
package org.apache.dubbo.samples.client;
import org.apache.dubbo.config.ApplicationConfig;
import org.apache.dubbo.config.ReferenceConfig;
import org.apache.dubbo.config.RegistryConfig;
import org.apache.dubbo.samples.api.GreetingsService;
public class Application {
private static String zookeeperHost = System.getProperty("zookeeper.address", "127.0.0.1");
public static void main(String[] args) {
ReferenceConfig<GreetingsService> reference = new ReferenceConfig<>();
reference.setApplication(new ApplicationConfig("first-dubbo-consumer"));
reference.setRegistry(new RegistryConfig("zookeeper://" + zookeeperHost + ":2181"));
reference.setInterface(GreetingsService.class);
GreetingsService service = reference.get();
String message = service.sayHi("dubbo");
System.out.println(message);
}
}
Voir consumer/Application.java sur GitHub.
# mvn clean package
# mvn -Djava.net.preferIPv4Stack=true -Dexec.mainClass=org.apache.dubbo.samples.client.Application exec:java
Le consommateur affichera hi, dubbo à l'écran.
Si vous souhaitez essayer les fonctionnalités de pointe, vous pouvez compiler avec les commandes suivantes. (Java 1.8 est nécessaire pour compiler la branche master)
mvn clean install
Liste de diffusion :
Bogues : Issues
Gitter : Canal Gitter
Twitter : @ApacheDubbo
Consultez CONTRIBUTING pour plus de détails sur la soumission de correctifs et le processus de contribution.
Good first issue ou Help wanted.Veuillez suivre le modèle pour signaler tout problème.
Veuillez signaler les vulnérabilités de sécurité à nous en privé.
dubbo pour rassembler tous les projets liés à Dubbo qui ne sont pas encore appropriés pour le groupe apacheLe logiciel Apache Dubbo est sous licence Apache License Version 2.0. Consultez le fichier LICENSE pour plus de détails.