
Proof-of-Concept-Exploit für CVE-2022-34919: nicht authentifizierter Dateiupload und beliebige Befehlsausführung in Contensis CMS vor Version 15.2.1.79. Enthält Schritt-für-Schritt-Reproduktionsschritte und Webshell-Bereitstellung.
Contensis Content Management System vor Version 15.2.1.79 weist einen Fehler in der 'Classic'-Oberfläche auf, der es einem nicht authentifizierten Benutzer ermöglicht, beliebige Dateien hochzuladen und zu genehmigen. Durch das Hochladen einer aspx-Datei ist es möglich, Befehle im Kontext des Webservers auszuführen.
Diese Sicherheitslücke wurde im März 2022 entdeckt und von Zengenti in ihrer Veröffentlichung am 8. April 2022 behoben.
Schritte zur Reproduktion:
1:
Der erste Dateiupload erfolgt mit einer POST-Anfrage an den folgenden Endpunkt:
https://[example].cloud.contensis.com/REST/UI/Wizards/CreateContent/UploadFile?folderId=1&projectId=1&context=%7B%22UserID%22%3A1%2C%22LanguageID%22%3A1%2C%22SecurityToken%22%3A%22%22%7D
Der context-Parameter gibt an, welcher Benutzer die Datei hochlädt; in diesem Fall UserId 1, Systemadministrator. Der SecurityToken-Parameter ist erforderlich, kann aber leer sein. Diese Anfrage (Screenshot 1) erzeugt eine temporäre Datei auf dem Server mit einer UUID. In diesem Beispiel verwendete ich eine Webshell, verfügbar unter: https://github.com/tennc/webshell/blob/master/fuzzdb-webshell/asp/cmd.aspx

2:
Die Datei muss dann mit einer POST-Anfrage an den folgenden Endpunkt genehmigt werden:
https://[example].cloud.contensis.com/REST/UI/Wizards/CreateContent/CreateContent
Diese Anfrage (Screenshot 2) enthält den Pfad zur temporären Datei aus der ersten Anfrage und Parameter, um die Veröffentlichung zu genehmigen und den Inhaltstyp zu ändern, um Dateibeschränkungen zu umgehen. In diesem Fall ist ContentTypeId auf 43 gesetzt, was darauf hinweist, dass es sich um ein HTML-Dokument und nicht um ASPX handelt. Die Datei ist dann auf den folgenden 'Preview'- und 'Live'-Domains verfügbar:
https://preview-[example].cloud.contensis.com/cmd2.aspx
https://iis-live-[example].cloud.contensis.com/cmd2.aspx

3:
Seien Sie verantwortungsbewusst und testen Sie dies nur auf autorisierten Hosts (Screenshot 3)