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

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

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

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

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

Категории

Все категории
Loading categories
Инструменты/GitHubGitHub/deepanshu-khurana/cve-2023-43804
Оборонительные ИнструментыБезопасность контейнеровАнализ уязвимостейЭксплуатацияВеб-безопасностьТестирование на ПроникновениеОбучение и ОбразованиеЛаборатории и Практика

Популярное

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

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

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

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

Смотреть все инструменты →
GitHub
deepanshu-khurana/cve-2023-43804

CVE-2023-43804

Контейнеризированная трёхуровневая лаборатория, воспроизводящая утечку cookie в urllib3 CVE-2023-43804 через кросс-доменные перенаправления, со скриптом эксплуатации и проверкой патча.

Репозиторий
14 ч 44 мин назадЕщё не проверено
Поделиться

CVE-2023-43804: Воспроизведение утечки Cookie в urllib3 и лаборатория по устранению

Репозиторий включает полностью контейнеризованную трёхуровневую лабораторную среду, предназначенную для демонстрации, эксплуатации и проверки исправлений для CVE-2023-43804 (утечка Cookie в urllib3, возникающая при кросс-доменных перенаправлениях).


1. Лабораторная среда и архитектура

Лаборатория оркестрируется с помощью Docker Compose и состоит из трёх изолированных сервисов, взаимодействующих через внутреннюю bridge-сеть:

  • victim_client: контейнер на базе Python, выполняющий скрипт воспроизведения и эксплуатации (exploit.py).
  • target_app: веб-приложение на Flask, имитирующее уязвимый целевой сервер, который инициирует кросс-доменное перенаправление HTTP 302 на внешний источник.
  • attacker_app: сервер логирования на Flask, предназначенный для захвата входящих HTTP-запросов и извлечения утёкших заголовков.

2. Предварительные требования и системные требования

  • Установленный и запущенный Docker Desktop.
  • Docker Compose (v2+).
  • PowerShell или любая стандартная командная оболочка.

3. Установка и настройка

  1. Клонируйте репозиторий и перейдите в каталог проекта:
    root@kitploit:~
    git clone [https://github.com/deepanshu-khurana/cve-2023-43804-lab.git](https://github.com/deepanshu-khurana/cve-2023-43804-lab.git)
    cd cve-2023-43804-lab
    
    
    
    
  2. Соберите и запустите контейнеризованную лабораторную инфраструктуру:
root@kitploit:~
docker compose up -d --build


4. Как запустить и остановить лабораторию

  • Запуск контейнеров лаборатории:
root@kitploit:~
docker compose up -d

  • Остановка лаборатории и очистка ресурсов:
root@kitploit:~
docker compose down --volumes


5. Обзор уязвимости (CVE-2023-43804)

  • Уязвимый компонент: urllib3
  • Уязвимые версии: < 1.26.17 или < 2.0.5
  • Описание уязвимости: urllib3 не удалял конфиденциальные заголовки аутентификации (такие как Cookie) при следовании перенаправлениям HTTP 302 между разными источниками, что позволяло недоверенным конечным точкам перенаправления перехватывать конфиденциальные токены сессий.

6. Как эксплуатировать уязвимость (Фаза 1)

  1. Убедитесь, что внутри клиентского контейнера установлена уязвимая версия urllib3:
root@kitploit:~
docker exec -it victim_client pip install urllib3==1.26.16

  1. Запустите скрипт эксплуатации:
root@kitploit:~
docker exec -it victim_client python3 -u /lab/exploit.py

  1. Ожидаемый результат при уязвимой версии:
  • Вывод клиента отображает "status": "EXFILTRATED" вместе с утёкшим токеном сессии.
  • docker logs attacker_app отображает захваченный конфиденциальный заголовок cookie.

7. Как запустить механизм обнаружения и проверки (Фаза 2)

Чтобы проверить исправление после наблюдения эксплуатации:

  1. Обновите urllib3 внутри клиентского контейнера до исправленной версии:
root@kitploit:~
docker exec -it victim_client pip install urllib3==1.26.17

  1. Повторно запустите скрипт эксплуатации:
root@kitploit:~
docker exec -it victim_client python3 -u /lab/exploit.py

  1. Ожидаемый результат при исправленной версии:
  • Вывод клиента отображает "status": "SECURE", "stolen_cookie": "None / Stripped".
  • Логи attacker_app подтверждают, что входящий запрос содержит Leaked Cookie Header: None.

8. Устранение

  • Обновление библиотеки: Обновите зависимости в requirements.txt, чтобы закрепить безопасные версии:
root@kitploit:~
urllib3>=1.26.17

  • Эшелонированная защита: Явно настройте политики управления заголовками через remove_headers_on_redirect в пользовательских конфигурациях Retry, если необходимо поддерживать устаревшие среды выполнения.

9. Примечания по устранению неполадок

  • Именование контейнеров: Убедитесь, что вы точно указываете имена контейнеров (victim_client, target_app, attacker_app), назначенные Docker Compose. Используйте docker ps для проверки имён активных контейнеров.
  • Доступность портов: Убедитесь, что порты 5000 и 5001 не заняты другими локальными сервисами перед запуском стека Docker.

10. Демонстрация лаборатории и результаты

Фаза 1: Уязвимое состояние (утечка Cookie)

При запуске лаборатории на уязвимой версии urllib3==1.26.16 конфиденциальный cookie аутентификации перехватывается при кросс-доменных перенаправлениях и успешно логируется сервером атакующего.

  • Вывод клиента и захват логов сервера: Vulnerable Execution and Log Capture
    • Рисунок 1.1: exploit.py отображает "status": "EXFILTRATED" вместе с утёкшим токеном сессии, что подтверждается выводом логов attacker_app.

Фаза 2: Проверка исправления (безопасное состояние)

После обновления urllib3 до исправленной версии (1.26.17) библиотека автоматически удаляет конфиденциальный заголовок Cookie при кросс-доменных перенаправлениях.

  • Обновление пакета до исправленной версии: Urllib3 Upgrade

    • Рисунок 2.1: Обновление urllib3 внутри victim_client через pip install urllib3==1.26.17.
  • Безопасный вывод клиента и очищенные логи: Secure Execution and Log Capture

    • Рисунок 2.2: exploit.py возвращает "status": "SECURE" с "stolen_cookie": "None / Stripped", что подтверждается логом сервера, показывающим Leaked Cookie Header: None.
Скачать инструмент