Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!
React2Shell-Kingdom — "Однажды в стародавние времена Замок Реактландии доверял всем полетным сообщениям... пока не появился Самозванец." - Демонстрация сюжетной уязвимости CVE-2025-55182 (React2Shell) - уязвимое приложение на React Server Components в средневековом стиле для обучения безопасности. | Kitploit
"Однажды в стародавние времена Замок Реактландии доверял всем полетным сообщениям... пока не появился Самозванец." - Демонстрация сюжетной уязвимости CVE-2025-55182 (React2Shell) - уязвимое приложение на React Server Components в средневековом стиле для обучения безопасности.
Проект демонстрации уязвимости 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. Приложение включает:
Одностраничный сайт с аутентификацией по имени пользователя и паролю
Примечание: Готовая к копированию однострочная команда также доступна в файле exploit/curl-oneline.txt
После эксплуатации
После запуска эксплойта:
Эксплойт создает нового пользователя в data/users.json
Теперь вы можете войти с помощью только что созданных учетных данных:
Имя пользователя: hacker
Пароль: hacked123
Это демонстрирует, как уязвимость может обойти аутентификацию
Технические детали
Уязвимость (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
Уязвимость существует в том, как вызовы серверных функций десериализуются и выполняются.
Соображения безопасности
⚠️ Критические предупреждения
Изолированная среда: Запускайте только в контролируемых изолированных средах
Не для продакшена: Никогда не развертывайте уязвимый код в продакшене
Сетевая изоляция: Не подвергайте воздействию ненадежных сетей
Образовательная цель: Только для исследований безопасности и обучения
Соблюдение законов: Убедитесь в наличии соответствующих разрешений перед тестированием
Лучшие практики
Используйте выделенную виртуальную машину или контейнер для тестирования
Отключите сетевой доступ, кроме 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 - Только для образовательных целей
Отказ от ответственности
Данное программное обеспечение предоставляется только для образовательных целей и исследований в области безопасности. Авторы и участники не несут ответственности за любое неправомерное использование или ущерб, причиненный этим программным обеспечением. Используйте на свой страх и риск и соблюдайте все применимые законы и нормативные акты.