
Эксплойт доказательства концепции для CVE-2023-38545, переполнение кучи в curl. Включает SOCKS5-прокси и HTTP-сервер для запуска уязвимости и определения подверженности системы.
Этот репозиторий содержит 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