
Una prueba de concepto para probar CVE-2023-38545 contra curl local
Este repositorio contiene una Prueba de Concepto (PoC) diseñada para probar sistemas frente a la vulnerabilidad CVE-2023-38545. La vulnerabilidad afecta a la utilidad curl, concretamente a las versiones entre 7.69.0 y 8.3.1, y está relacionada con el manejo de redirecciones HTTP.
Software requerido: curl
La PoC consta de dos componentes principales:
Este paso es opcional si ya tienes un proxy SOCKS5 que puedas utilizar.
Ejecuta setup_socks5.sh
$ chmod +x setup_socks5.sh
$ ./setup_socks5.sh
Esto instalará las dependencias necesarias y configurará el servidor proxy SOCKS5 en el puerto 1080.
Ejecuta el siguiente comando para iniciar el servidor HTTP:
$ python3 server.py
También puedes ejecutar el servidor con registro de depuración
$ python3 server.py --debug
Tras una ejecución correcta, el servidor HTTP estará escuchando en el puerto 8000.
Primero, haz ejecutable el script:
$ chmod +x cve202338545.sh
El script se puede configurar para aceptar una dirección de proxy SOCKS5 con --socks5-ip y una dirección HTTP con --http-ip, y puede mostrar registros de depuración 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
Esto iniciará el exploit, y deberías ver una salida que indique si el sistema es vulnerable, no vulnerable, o si la prueba no fue concluyente.
Hay 4 estados de respuesta:
Este paso solo es necesario si utilizaste setup_socks5.sh del paso 1.
Para limpiar el servidor proxy SOCKS5, ejecuta el siguiente comando:
$ ./cleanup.sh