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

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

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

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

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

Категории

Все категории
Loading categories
Инструменты/GitHubGitHub/thanhlam-attt/cve-2023-25690
Анализ уязвимостейЭксплуатацияЭксплуатация веб-приложенийВеб-безопасностьТестирование на ПроникновениеОбучение и Образование
GitHubthanhlam-attt/cve-2023-25690

CVE-2023-25690

Эксплойт proof-of-concept для CVE-2023-25690, контрабанды HTTP-запросов в Apache mod_proxy. Включает лабораторную среду с Docker, прохождение BurpSuite и обход контроля доступа прокси для доступа к внутренним конечным точкам администратора.

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

Популярное

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

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

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

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

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

CVE-2023-25690

Описание CVE-2023-25690:

  • Некоторые конфигурации mod_proxy в Apache HTTP Server с версии 2.4.0 по 2.4.55 допускают атаку HTTP Request Smuggling (техника атаки, вмешивающаяся в процесс обработки веб-сайтом последовательностей HTTP-запросов, полученных от одного или нескольких пользователей).
  • Эти конфигурации подвержены уязвимости, когда mod_proxy включён вместе с некоторыми формами RewriteRule или ProxyPassMatch, при которых удалённый злоумышленник может использовать эту уязвимость для обхода мер контроля доступа на прокси-сервере, тем самым перенаправляя нежелательные URL на исходный сервер.
  • Данная уязвимость позволяет злоумышленнику нацеливаться на внутренние приложения, скрытые прокси-сервером, и получать к ним доступ, что потенциально может привести к несанкционированному доступу, утечке данных или дальнейшей эксплуатации системы.

Эксперимент CVE-2023-25690

  • В качестве атакующей машины используется машина с Windows.
  • Backend-server и proxy-server развёрнуты через Docker на машине с Kali Linux.

Структура файлов лабораторной работы:

image

Модель эксперимента

image

  • IP-адрес машины Windows 10: 192.168.1.177
  • IP-адрес машины Kali Linux: 192.168.27.139
  • IP-адрес Backend-Server: 172.18.0.2
  • IP-адрес Proxy-Server: 172.18.0.3
  • Когда машина Windows 10 обращается к Apache HTTP Server, размещённому на машине Kali на порту 80, трафик перенаправляется на порт 80 Proxy-Server и далее передаётся на Backend-Server через порт 8080.

Требования к системе

  • Атакующая машина:
    • Операционная система Windows 10
    • Установленные инструменты: Pycharm, BurpSuite, VScode
    • Использование браузера FireFox и расширения FoxyProxy для настройки прокси
  • Машина жертвы:
    • Установленные инструменты и службы: Docker, Tcpdump
    • Настроенный Dockerfile (см. раздел приложения)

Цель эксплуатации: использовать уязвимость HTTP Request Smuggling для обхода ограничений прокси-сервера и доступа к скрытой функции на странице admin.php

Проведение эксперимента:

  • Используем BurpSuite Community, настроенный как прокси, для перехвата и изменения запросов.
  • В браузере устанавливаем расширение FoxyProxy и добавляем информацию о прокси: image
  • Включаем FoxyProxy на панели инструментов (в разделе расширений браузера), переключая с Turn Off на BurpSuite Commu: image
  • В BurpSuite включаем intercept (переключаем на on), чтобы перехватывать пакеты: image
  • На машине Kali с помощью команды cd переходим в папку лабораторной работы, где находится файл docker-composer.yml, и запускаем docker compose командой: docker-composer up --build

Проверка CRLF-инъекции:

  • Сначала отправляем на систему запрос, содержащий управляющие символы (CRLF), например: HTTP/1.1\r\nFoo: baarr\r\r\n\n, и кодируем URL как: %20HTTP/1.1%0d%0aFoo:%20baarr image => Можно заметить, что при вставке символов CRLF (%0d%0a) сервер обрабатывает наш запрос без каких-либо ошибок или ограничений, что показывает, что мы можем вставлять символы CRLF.

Проверка HTTP Request Smuggling:

  • Далее у нас есть следующий URI: /categories/1 HTTP/1.1\r\nHost: Localhost\r\n\r\nGET /SMUGGLED. После URL-кодирования получаем: /categories/1%20HTTP/1.1%0d%0aHost:%20localhost%0d%0a%0d%0aGET%20/SMUGGLED/ image
  • После применения RewriteRule видно, что URL будет проанализирован, и наш запрос после прохождения через прокси преобразуется в следующий формат: image
  • Можно заметить, что на один отправленный нами запрос сервер получает и возвращает целых 2 ответа: один от GET /categories и один от GET /SMUGGLED image

Эксплуатация HTTP Request Smuggling:

  • Предположим, что в файле httpd.conf мы настроили Proxy-Server на блокировку доступа к странице /admin/ image
  • Мы можем использовать HTTP Request Smuggling для обхода механизма проверки apache-proxy с помощью запроса: image
    • Проверив логи, мы видим, что успешно обошли apache-proxy, отправили запрос на /admin, и backend также вернул статус-код 200 для GET /admin image
    • Предположим, что в файле admin.php есть функция, выполняющая системную команду nslookup для запроса к любому домену, как показано ниже. Наша цель — обойти механизм прокси и получить доступ к этой скрытой функции для отправки DNS-запроса к любому домену; здесь мы запрашиваем нашу собственную машину Kali. image
    • У нас есть код эксплойта (файл CVE-2023-25690.py) и файл pre.txt (содержащий smuggled-запрос, который мы хотим пропустить через Proxy-Server для отправки запроса в систему, здесь — /admin.php). Этот код создаёт smuggling-запрос с нашим запросом, находящимся в файле pre.txt, и отправляет его на сервер. Также сохраняет результаты запроса и ответа в два соответствующих файла: req.txt и res.txt image
    • Одновременно на машине Kali используем TCPDUMP для перехвата DNS-пакетов на порту 53 image
  • Можно заметить, что отправленный нами запрос прошёл через прокси: прокси считает его допустимым запросом. Но на backend-server запрос анализируется с учётом управляющих символов, поэтому из одного запроса backend-server выделил 3 запроса: первый — GET /categories.php?id=1, второй — GET /admin.php?secret=192.168.1.194 и, наконец, GET /abc image
  • Таким образом, мы успешно отправили запрос на /admin.php — туда, куда прокси не разрешает отправлять запросы. image => Проверив TCPDUMP, мы видим, что TCPDUMP перехватил DNS-пакеты, отправленные на наш адрес, — значит, скрытая функция в /admin.php была успешно выполнена.
Скачать инструмент