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

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

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

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

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

Категории

Все категории
Loading categories
CVE-2024-38828 — PoC и исправление для CVE-2024-38828: DoS в Spring Framework через манипуляцию Content-Length в ByteArrayHttpMessageConverter. Включает нагрузочное тестирование, метрики и пользовательский безопасный конвертер. | Kitploit
Инструменты/GitHubGitHub/funcid/cve-2024-38828
Анализ уязвимостейАнализ КодаЭксплуатацияВеб-безопасностьОбучение и Образование
GitHubfuncid/cve-2024-38828

CVE-2024-38828

PoC и исправление для CVE-2024-38828: DoS в Spring Framework через манипуляцию Content-Length в ByteArrayHttpMessageConverter. Включает нагрузочное тестирование, метрики и пользовательский безопасный конвертер.

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

Популярное

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

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

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

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

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

Уязвимость CVE-2024-38828

Описание

Тест проверяет поведение/реакцию в Spring Framework при уязвимости CVE-2024-38828 и без нее. В ByteArrayHttpMessageConverter аллоцируется память в ByteArrayOutputStream по заголовку запроса Content-Length что может не соответсвовать реальности с телом в 0 байт. При резком росте таких запросов (DoS), память используется неоптимально, появляются регулярные чистки GC и приложение начинает лагать. Покажу как это реализовать/исправить и метрики.

Графики метрик

Описание уязвимости

CVE-2024-38828 - это уязвимость типа Denial of Service (DoS) в Spring Framework, которая позволяет атакующему вызвать исчерпание памяти на сервере через контроллер Spring MVC с параметром типа byte[].

Технические детали

  • Уязвимые версии: Spring Framework 5.3.x (все версии)
  • Тип уязвимости: Denial of Service (DoS)
  • Вектор атаки: HTTP POST запросы с Content-Length = 2 ^ 31 - 1
  • Влияние: Исчерпание памяти сервера, приводящее к отказу в обслуживании

Решение

Реализованный фикс

  1. Создан кастомный HttpMessageConverter для обработки массивов байтов
  2. Реализована проверка размера входящих данных
  3. Использован потоковый подход для обработки больших payload'ов

Тестирование

Структура проекта

root@kitploit:~
.
├── src/
│   └── main/
│       └── java/
│           └── me/
│               └── func/
│                   └── demo/
│                       ├── config/
│                       │   └── WebConfig.java
│                       ├── converter/
│                       │   └── SafeByteArrayHttpMessageConverter.java
│                       ├── controller/
│                       │   └── DemoController.java
│                       └── DemoApplication.java
├── tests/
│   ├── load_test.py
│   └── results/
│       ├── результаты_теста.png
│       └── метрики.json
└── README.md

Параметры теста

  • Количество запросов: 6000
  • Максимальное количество одновременных запросов: 5
  • Задержка между группами запросов: 0.1 секунды
  • Размер запроса: 1 байт
  • Заголовок Content-Length: 2^31 - 1 (максимальное значение для int)

Код теста

root@kitploit:~
def send_request(url):
    try:
        response = requests.post(
            url,
            data=b'0',  # Минимальный payload
            headers={
                'Content-Type': 'application/octet-stream',
                'Content-Length': str(2**31 - 1)  # Максимальный размер
            }
        )
        return response.status_code, response.text
    except Exception as e:
        return f"Ошибка: {str(e)}", None

Запуск тестов

  1. Установите зависимости Python:
root@kitploit:~
pip install -r requirements.txt
  1. Запустите тест:
root@kitploit:~
python tests/load_test.py
Скачать инструмент