Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
POC-CVE-2023-32681 — POC для CVE-2023-32681 | Kitploit
Инструменты/GitHubGitHub/hardikmodha/poc-cve-2023-32681
Анализ уязвимостейЭксплуатацияВеб-безопасностьОбучение и ОбразованиеЛаборатории и ПрактикаArchived
GitHubhardikmodha/poc-cve-2023-32681

POC-CVE-2023-32681

POC для CVE-2023-32681

Репозиторий
4123 лет назадЕщё не проверено

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

POC для CVE-2023-32681

Это реализация CVE-2023-32681 на Python 3, затрагивающая клиентов, использующих библиотеку requests версии <= 2.30.0.

Согласно https://www.rfc-editor.org/rfc/rfc9110.html#section-15.4, когда сервер выдает перенаправление 3xx, пользовательский агент должен изменить запрос, удалив из него определенные заголовки и поля.

Подробности об этих полях можно найти по адресу https://www.rfc-editor.org/rfc/rfc9110.html#section-15.4-5. Применительно к этому CVE я выделил соответствующую часть здесь.

image

Версия requests <= 2.30.0 не удаляла заголовок "Proxy-Authorization" при обработке перенаправления на "https", что приводило к утечке учетных данных прокси-сервера на перенаправленный сервер.

Более подробную информацию можно найти по адресам

  • https://www.cve.org/CVERecord?id=CVE-2023-32681
  • https://security.snyk.io/vuln/SNYK-PYTHON-REQUESTS-5595532

Предварительные требования

  • Действительный набор сертификатов для HTTP(S) сервера. Вы можете использовать mkcert для локальной генерации сертификатов.
  • Go v1.19
  • Python 3.x
  • virtualenv (опционально)

Обзор

  1. Реализация прокси-сервера на Go. Он запускает прокси-сервер на порту 8080 и требует базовой аутентификации. Для целей POC в том же файле заданы жестко закодированные имя пользователя и пароль.
Скачать инструмент
  • Реализация HTTP(S) сервера на Go. Он запускает 2 сервера.
    • Сервер перенаправления, слушающий порт 443, и еще один echo-сервер, слушающий порт 4431.
    • Сервер перенаправления определяет маршрут /redirect, который перенаправляет трафик на второй сервер, работающий на порту 4431.
    • Echo-сервер определяет маршрут /echoHeaders. Этот маршрут возвращает клиенту заголовки, полученные в запросе.
  • POC-скрипт на Python. Он отправляет проксированный запрос к серверу перенаправления, работающему на порту 443, и выводит ответ, который возвращает сервер.
  • Если ответ содержит заголовки Proxy-Authorization, то версия requests считается уязвимой к "CVE-2023-32681".
  • Шаги

    1. Клонируйте этот репозиторий.
    2. Обновите переменные certFile и keyFile в файле server/main.go.
    3. Запустите HTTP(S) серверы командой go run server/main.go. Это запустит два сервера, слушающих порты 443 и 4431.
    4. Запустите прокси-сервер командой go run proxy/main.go. Это запустит прокси-сервер на порту 8080.
    5. Установите зависимости для запуска Python-скрипта: pip3 install -r script/requirements_request_2_30_0.txt
    6. Выполните POC-скрипт командой python3 script/poc.py и посмотрите вывод. Вы увидите, что сервер возвращает заголовок "Proxy-Authorization" в ответе. Сервер также выводит полученные заголовки в журналы.
    7. Теперь обновите версию requests до >= 2.31.0 или выполните pip3 install -r script/requirements_request_2_31_0.txt
    8. Снова выполните POC-скрипт командой python3 script/poc.py и посмотрите вывод. Вы увидите, что заголовок "Proxy-Authorization" теперь отсутствует в ответе сервера. Это также можно проверить в журналах сервера.

    Скриншоты

    Прокси-сервер

    proxy_server_logs

    requests==2.30.0

    requests_2_30_0_script_output
    requests_2_30_0_server_output

    requests==2.31.0

    requests_2_31_0_script_output
    requests_2_31_0_server_output