
Una prova di concetto per testare CVE-2023-38545 contro il curl locale
Questo repository contiene un Proof of Concept (PoC) progettato per testare i sistemi per la vulnerabilità CVE-2023-38545. La vulnerabilità interessa l'utilità curl, in particolare le versioni comprese tra 7.69.0 e 8.3.1, ed è correlata alla gestione dei reindirizzamenti HTTP.
Software Necessario: curl
Il PoC è composto da due componenti principali:
Questo passaggio è opzionale se hai già un proxy socks5 che puoi utilizzare.
Esegui setup_socks5.sh
$ chmod +x setup_socks5.sh
$ ./setup_socks5.sh
Questo installerà le dipendenze necessarie e configurerà il server proxy SOCKS5 sulla porta 1080.
Esegui il seguente comando per avviare il server HTTP:
$ python3 server.py
Puoi anche eseguire il server con log di debug
$ python3 server.py --debug
Dopo l'esecuzione riuscita, il server HTTP sarà in ascolto sulla porta 8000.
Per prima cosa, rendi lo script eseguibile:
$ chmod +x cve202338545.sh
Lo script può essere configurato per accettare un indirizzo proxy socks5 con --socks5-ip e un indirizzo http con --http-ip e può produrre log di debug con --DEBUG
$ ./cve202338545.sh --socks5-ip <ip> --http-ip <ip> --DEBUG # specifica sia proxy che server http
$ ./cve202338545.sh --socks5-ip <ip> # specifica solo il server proxy
$ ./cve202338545.sh --http-ip <ip> # specifica solo il server http
$ ./cve202338545.sh # sia proxy che server http useranno localhost di default
$ ./cve202338545.sh --DEBUG # sia proxy che server http useranno localhost di default con debug attivo
Questo avvierà l'exploit e dovresti vedere un output che indica se il sistema è vulnerabile, non vulnerabile, o se il test è inconcludente.
Ci sono 4 stati di risposta:
Questo passaggio è necessario solo se hai usato setup_socks5.sh dal passo 1.
Per pulire il server proxy SOCKS5, esegui il seguente comando:
$ ./cleanup.sh