
Proof-of-concept per CVE-2023-38545, un heap buffer overflow in curl. Include un proxy SOCKS5 e un server HTTP per attivare la vulnerabilità e determinare l'esposizione del sistema.
Questa repository contiene un Proof of Concept (PoC) progettato per testare i sistemi per la vulnerabilità CVE-2023-38545. La vulnerabilità interessa l'utility curl, in particolare le versioni tra 7.69.0 e 8.3.1, ed è legata alla gestione dei redirect HTTP.
Software richiesto: curl
Il PoC è composto da due componenti principali:
Questo passaggio è facoltativo se hai già un proxy socks5 da usare.
Esegui setup_socks5.sh
$ chmod +x setup_socks5.sh
$ ./setup_socks5.sh
Questo installerà le dipendenze richieste 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 il logging di debug
$ python3 server.py --debug
Dopo l'esecuzione riuscita, il server HTTP sarà in ascolto sulla porta 8000.
Per prima cosa, rendi eseguibile lo script:
$ 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 # 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
Questo avvierà l'exploit e dovresti vedere un output che indica se il sistema è vulnerabile, non vulnerabile o se il test è stato inconcludente.
Ci sono 4 stati di risposta:
Questo passaggio è necessario solo se hai usato setup_socks5.sh del passo 1.
Per pulire il server proxy SOCKS5, esegui il seguente comando:
$ ./cleanup.sh