
Exploit de preuve de concept pour CVE-2023-38545, un débordement de tas curl. Comprend un proxy SOCKS5 et un serveur HTTP pour déclencher la vulnérabilité et déterminer l'exposition du système.
Ce dépôt contient une preuve de concept (PoC) conçue pour tester les systèmes pour la vulnérabilité CVE-2023-38545. La vulnérabilité affecte l'utilitaire curl, plus précisément les versions comprises entre 7.69.0 et 8.3.1, et est liée à la gestion des redirections HTTP.
Logiciels requis : curl
Le PoC se compose de deux composants principaux :
Cette étape est facultative si vous disposez déjà d'un proxy socks5 que vous pouvez utiliser.
Exécutez setup_socks5.sh
$ chmod +x setup_socks5.sh
$ ./setup_socks5.sh
Cela installera les dépendances requises et configurera le serveur proxy SOCKS5 sur le port 1080.
Exécutez la commande suivante pour démarrer le serveur HTTP :
$ python3 server.py
Vous pouvez également exécuter le serveur avec la journalisation de débogage
$ python3 server.py --debug
En cas d'exécution réussie, le serveur HTTP écoutera sur le port 8000.
Tout d'abord, rendez le script exécutable :
$ chmod +x cve202338545.sh
Le script peut être configuré pour accepter une adresse de proxy socks5 avec --socks5-ip et une adresse http avec --http-ip, et peut afficher des journaux de débogage avec --DEBUG
$ ./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
Cela déclenchera l'exploitation, et vous devriez voir une sortie indiquant si le système est vulnérable, non vulnérable, ou si le test n'a pas été concluant.
Il y a 4 états de réponse :
Cette étape n'est requise que si vous avez utilisé setup_socks5.sh à l'étape 1.
Pour nettoyer le serveur proxy SOCKS5, exécutez la commande suivante :
$ ./cleanup.sh