
Ein Proof of Concept zum Testen von CVE-2023-38545 gegen lokales curl.
Dieses Repository enthält einen Proof of Concept (PoC) zum Testen von Systemen auf die Sicherheitslücke CVE-2023-38545. Die Sicherheitslücke betrifft das curl-Dienstprogramm, insbesondere die Versionen zwischen 7.69.0 und 8.3.1, und steht im Zusammenhang mit der Behandlung von HTTP-Weiterleitungen.
Erforderliche Software: curl
Der PoC besteht aus zwei Hauptkomponenten:
Dieser Schritt ist optional, wenn Sie bereits einen SOCKS5-Proxy verwenden können.
Führen Sie setup_socks5.sh aus
$ chmod +x setup_socks5.sh
$ ./setup_socks5.sh
Dies installiert die erforderlichen Abhängigkeiten und richtet den SOCKS5-Proxy-Server auf Port 1080 ein.
Führen Sie den folgenden Befehl aus, um den HTTP-Server zu starten:
$ python3 server.py
Sie können den Server auch mit Debug-Protokollierung ausführen
$ python3 server.py --debug
Nach erfolgreicher Ausführung hört der HTTP-Server auf Port 8000.
Machen Sie das Skript zunächst ausführbar:
$ chmod +x cve202338545.sh
Das Skript kann so konfiguriert werden, dass es eine SOCKS5-Proxy-Adresse mit --socks5-ip und eine HTTP-Adresse mit --http-ip akzeptiert und Debug-Protokolle mit --DEBUG ausgibt.
$ ./cve202338545.sh --socks5-ip <ip> --http-ip <ip> --DEBUG # specify both proxy and http server
$ ./cve202338545.sh --socks5-ip <ip> # specify only proxy server
$ ./cve202338545.sh --http-ip <ip> # specify only http server
$ ./cve202338545.sh # both proxy and http server will default to localhost
$ ./cve202338545.sh --DEBUG # both proxy and http server will default to localhost with debug on
Dies initiiert den Exploit und Sie sollten eine Ausgabe sehen, die angibt, ob das System verwundbar, nicht verwundbar oder ob der Test nicht eindeutig war.
Es gibt 4 Antwortzustände:
Dieser Schritt ist nur erforderlich, wenn Sie setup_socks5.sh aus Schritt 1 verwendet haben.
Um den SOCKS5-Proxy-Server zu bereinigen, führen Sie den folgenden Befehl aus:
$ ./cleanup.sh