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

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

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

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

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

Категории

Все категории
Loading categories
CVE-2025-34096 — SEH-переполнение буфера в Easy File Sharing Web Server 7.2, доступное через конечную точку восстановления пароля. | Kitploit
Инструменты/GitHubGitHub/themalwareguardian/cve-2025-34096
Анализ уязвимостейЭксплуатацияОбратная инженерияШелл-кодЭксплуатация веб-приложенийТестирование на ПроникновениеОбучение и ОбразованиеРазработка Полезной НагрузкиЭксплуатация Бинарных Файлов
GitHubthemalwareguardian/cve-2025-34096

CVE-2025-34096

SEH-переполнение буфера в Easy File Sharing Web Server 7.2, доступное через конечную точку восстановления пароля.

5 месяцев назадЕщё не проверено

Популярное

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

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

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

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

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

🐞 CVE-2025-34096: Easy File Sharing Web Server 7.2 - Переполнение буфера на основе стека (SEH)

Переполнение буфера на основе SEH в Easy File Sharing Web Server 7.2, доступное через конечную точку восстановления пароля.




📑 Содержание

  • Зачем существует этот репозиторий
  • Почему эта уязвимость интересна
  • Контекст и затронутое ПО
  • Об уязвимости
  • Вызов сбоя
  • Эксплуатация



🎓 Зачем существует этот репозиторий

Этот репозиторий создан как часть материалов, которые я использую при обучении исследованию уязвимостей и разработке эксплойтов, особенно при введении в концепцию переполнений SEH (Structured Exception Handler) и цепочек ROP (Return-Oriented Programming).

Он связан с моим докладом "The Path That Leads to Your First CVE". В этом докладе я объясняю, что существуют разные точки входа в исследование уязвимостей, и что изучение публично задокументированных CVE в устаревшем ПО — один из самых доступных путей для новичков.

Этот CVE был выбран, потому что он демонстрирует полный и реалистичный сценарий эксплуатации:

  • Цель — публично доступное Windows-приложение.
  • Сбой — не простое перезапись EIP, он включает перезапись SEH и подмену стека (stack pivoting).
  • Уязвимая конечная точка не требует аутентификации, что делает её настоящей неаутентифицированной удалённой возможностью выполнения кода.
  • Эксплойт опционально может быть расширен цепочкой ROP для обхода DEP/NX, показывая, как то же самое переполнение SEH может быть адаптировано к более защищённым средам.

Цель — использовать этот случай как ступеньку между вводными упражнениями по переполнению буфера и более продвинутыми концепциями разработки эксплойтов.




💡 Почему эта уязвимость интересна

Эта уязвимость затрагивает Easy File Sharing Web Server 7.2 — лёгкое Windows-приложение для веб-сервера, которое широко использовалось для простого обмена файлами. ПО было написано без учёта современных средств защиты. Что делает этот случай особенно интересным с точки зрения обучения — это комбинация вовлечённых факторов:

  • Уязвимая конечная точка — POST-запрос, что позволяет легко воспроизводить его стандартными HTTP-инструментами.
  • Конечная точка /sendemail.ghp является частью функции уведомлений по электронной почте и доступна любому удалённому атакующему без учётных данных. Это представляет собой более серьёзный сценарий атаки, чем уязвимости, требующие предварительного доступа.
  • Переполнение основано на SEH, то есть сбой не перезаписывает адрес возврата напрямую. Вместо этого он повреждает цепочку обработчика исключений в стеке, что требует другой техники эксплуатации.
  • Обход DEP является опциональным, то есть эксплойт работает с прямым SEH + короткий прыжок + shellcode на системах, где DEP отключён. Но если DEP включён, эксплойт может быть расширен цепочкой ROP с использованием гаджетов из загруженных модулей для вызова VirtualProtect и пометки области shellcode как исполнимой перед передачей управления.

Эта комбинация делает CVE-2025-34096 отличным примером для обучения техникам разработки эксплойтов в реалистичном сценарии неаутентифицированной атаки.




🔍 Контекст и затронутое ПО

Easy File Sharing Web Server 7.2 — это лёгкое Windows-приложение, созданное для обмена файлами по HTTP. Помимо базового просмотра файлов и учётных записей пользователей, оно включает функцию восстановления пароля — форму, которая позволяет пользователям вводить свой адрес электронной почты для получения забытых учётных данных.

Эта форма отправляет POST-запрос к /sendemail.ghp. Обработчик, который обрабатывает поле Email, копирует значение напрямую в буфер стека фиксированного размера без проверки длины. Конечная точка не требует аутентификации, поэтому ничто не мешает удалённому атакующему достичь уязвимого пути кода.

Скачать инструмент

Ключевые технические детали:

  • Тип уязвимости: Переполнение буфера стека (перезапись SEH)
  • Затронутая версия: Easy File Sharing Web Server 7.2
  • Уязвимая конечная точка: POST /sendemail.ghp
  • Уязвимый параметр: Email
  • Требуется аутентификация: Нет
  • Воздействие: Неаутентифицированное удалённое выполнение кода



⚠️ Об уязвимости

Easy File Sharing Web Server обрабатывает HTTP POST-запросы, направленные к /sendemail.ghp, как часть функции уведомлений по электронной почте. Параметр Email, принимаемый этой конечной точкой, копируется в локальный буфер стека без какой-либо проверки длины.

Упрощённая версия уязвимой логики выглядит так:

root@kitploit:~
char email_buffer[256];

strcpy(email_buffer, user_input);

Поскольку целевой буфер имеет фиксированный размер, а длина ввода не проверяется, отправка достаточно длинной строки в поле Email приводит к тому, что копирование записывает данные за пределами буфера.

По мере записи большего количества данных макет стека повреждается. В отличие от простой перезаписи адреса возврата, переполнение достигает цепочки Structured Exception Handler (SEH), хранящейся в стеке. Когда в результате повреждённого стека возникает исключение, ОС проходит по цепочке SEH и передаёт управление на адрес обработчика, контролируемый атакующим.

Таким образом, поток эксплуатации следует технике перезаписи SEH:

  1. Длинный ввод перезаписывает стек, включая указатели nSEH и SEH handler.
  2. Из-за повреждения памяти возникает исключение.
  3. ОС вызывает перезаписанный адрес обработчика.
  4. Гаджет POP POP RETN используется для передачи управления на область nSEH.
  5. Короткий прыжок вперёд пропускает запись SEH и перенаправляет выполнение на область shellcode.
  6. Shellcode выполняется.

Это делает уязвимость более сложной для эксплуатации, чем базовое перезапись EIP, но также и более показательной для реальных сценариев.




💥 Вызов сбоя

Сбой можно воспроизвести, отправив длинную строку в параметре Email POST-запроса к /sendemail.ghp. Аутентификация не требуется. Пример с использованием Python:

root@kitploit:~
import socket

HOST = '127.0.0.1'
PORT = 80

request = (
	'POST /sendemail.ghp HTTP/1.1\r\n'
	'Email=' + 'A' * 5000 + '&getPassword=Get+Password'
).encode('utf-8')

s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((HOST, PORT))
s.send(request)
s.close()

При выполнении под отладчиком сбой показывает повреждённую цепочку SEH и нарушение доступа, подтверждая, что контролируемые атакующим данные перезаписали указатель обработчика исключений.




💣 Эксплуатация

Цель этого репозитория — не только продемонстрировать сбой, но и шаг за шагом провести через полный процесс эксплуатации, следуя методологии, используемой при разработке реальных эксплойтов на основе SEH.

Чтобы сохранить основной README чистым, подробные заметки по эксплуатации, скрипты и шаги отладчика размещены в папке Vulnerability 📂 этого репозитория.

Там вы найдёте полный рабочий процесс, используемый для эксплуатации этого CVE, включая:

  • Фаззинг параметра Email для выявления сбоя.
  • Определение смещения для нахождения точного положения nSEH и SEH в стеке.
  • Анализ «плохих» символов (bad characters) для выявления байтов, повреждающих полезную нагрузку.
  • Перезапись цепочки SEH с использованием гаджета POP POP RETN из загруженного модуля.
  • Размещение и выполнение shellcode.
  • Опционально: построение цепочки ROP для обхода DEP путём вызова VirtualProtect через гаджеты из загруженных модулей.