
Exploit de prueba de concepto para CVE-2023-38545, un desbordamiento de búfer en curl. Incluye un proxy SOCKS5 y un servidor HTTP para desencadenar la vulnerabilidad y determinar la exposición del sistema.
Este repositorio contiene una Prueba de Concepto (PoC) diseñada para probar sistemas ante la vulnerabilidad CVE-2023-38545. La vulnerabilidad afecta a la utilidad curl, específicamente 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:
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 exitosa, el servidor HTTP estará escuchando en el puerto 8000.
Primero, haz que el script sea ejecutable:
$ 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 # especifica tanto el proxy como el servidor http
$ ./cve202338545.sh --socks5-ip <ip> # especifica solo el servidor proxy
$ ./cve202338545.sh --http-ip <ip> # especifica solo el servidor http
$ ./cve202338545.sh # tanto el proxy como el servidor http usarán localhost por defecto
$ ./cve202338545.sh --DEBUG # tanto el proxy como el servidor http usarán localhost por defecto con depuración activada
Esto iniciará la explotación, 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 usaste setup_socks5.sh del paso 1.
Para limpiar el servidor proxy SOCKS5, ejecuta el siguiente comando:
$ ./cleanup.sh