
PoC для тестирования CVE-2023-38545 на локальном curl
Этот репозиторий содержит Proof of Concept (PoC), предназначенный для проверки систем на наличие уязвимости CVE-2023-38545. Уязвимость затрагивает утилиту curl, а именно версии с 7.69.0 по 8.3.1, и связана с обработкой HTTP-редиректов.
Необходимое программное обеспечение: curl
PoC состоит из двух основных компонентов:
Этот шаг необязателен, если у вас уже есть socks5 прокси, который можно использовать.
Выполните setup_socks5.sh
$ chmod +x setup_socks5.sh
$ ./setup_socks5.sh
Это установит необходимые зависимости и настроит SOCKS5 прокси-сервер на порту 1080.
Выполните следующую команду, чтобы запустить HTTP-сервер:
$ python3 server.py
Вы также можете запустить сервер с отладочным журналированием
$ python3 server.py --debug
В случае успешного выполнения HTTP-сервер будет прослушивать порт 8000.
Сначала сделайте скрипт исполняемым:
$ chmod +x cve202338545.sh
Скрипт можно настроить на прием адреса socks5 прокси с помощью --socks5-ip и http-адреса с помощью --http-ip, а также выводить отладочные журналы с помощью --DEBUG
$ ./cve202338545.sh --socks5-ip <ip> --http-ip <ip> --DEBUG # указать и прокси, и http-сервер
$ ./cve202338545.sh --socks5-ip <ip> # указать только прокси-сервер
$ ./cve202338545.sh --http-ip <ip> # указать только http-сервер
$ ./cve202338545.sh # прокси и http-сервер по умолчанию будут использовать localhost
$ ./cve202338545.sh --DEBUG # прокси и http-сервер по умолчанию будут использовать localhost с включенной отладкой
Это запустит эксплойт, и вы должны увидеть вывод, указывающий, уязвима ли система, не уязвима, или результат теста неопределим.
Существует 4 состояния ответа:
Этот шаг требуется только в том случае, если вы использовали setup_socks5.sh из шага 1.
Чтобы очистить SOCKS5 прокси-сервер, выполните следующую команду:
$ ./cleanup.sh