React Server Components Утилита удалённого RCE
📖 О программе
React Server Components Remote RCE Exploitation Tool — это инструмент для тестирования безопасности, специально предназначенный для эксплуатации удалённого выполнения кода в React Server Components и Next.js. Имеет графический интерфейс, поддерживает несколько режимов атак и массовое сканирование.
⚠️ Отказ от ответственности: Данный инструмент предназначен только для авторизованного тестирования безопасности и соревнований CTF. Запрещается использовать его для нелегальных атак. Все последствия использования инструмента ложатся на пользователя.
🎯 Затронутые версии
React Server
- React Server 19.0.0
- React Server 19.0.1 (примечание: некоторые ранние патчи не полностью закрывают уязвимость)
- React Server 19.1.* (все версии 19.1.x)
- React Server 19.2.0
Next.js
- Next.js v15.0.0 - v15.0.4
- Next.js v15.1.0 - v15.1.8
- Next.js v15.2.x - v15.5.6
- Next.js v16.0.0 - v16.0.6
- Next.js v14.3.0-canary.77 и более новые Canary версии
Другие затронутые компоненты
- Dify — платформа разработки AI-приложений
- NextChat — фреймворк для чат-приложений
- Другие приложения, построенные на уязвимых версиях React Server Components или Next.js
Внимание: Если ваше приложение использует любые из перечисленных версий, рекомендуется немедленно обновиться до безопасной версии или принять соответствующие меры защиты.
✨ Функциональные возможности
🎯 Основные функции
- Обнаружение уязвимости: Быстрая проверка цели на наличие RCE в React Server Components / Next.js
- Вывод результатов команд: Прямое выполнение системных команд с получением вывода
- Внедрение memory shell (WebShell в память): Инъекция персистентного WebShell на целевой сервер
- Reverse Shell: Получение интерактивной оболочки целевой системы
- Массовое сканирование: Поддержка массовой проверки нескольких целевых URL для быстрого выявления уязвимых систем
🔧 Вспомогательные функции
- Поддержка прокси: Возможность настройки HTTP-прокси (например, Burp Suite) для анализа трафика
- Пользовательские заголовки: Добавление пользовательских HTTP-заголовков для обхода простых защит
- Логирование в реальном времени: Отображение логов операций в реальном времени для отслеживания процесса тестирования
- Настройка таймаута: Возможность задать таймаут запроса для адаптации к различным сетевым условиям
🚀 Быстрый старт
Требования к окружению
- Java 8 или выше
- ОС Windows / Linux / macOS
Запуск инструмента
-
Дважды щелкните по файлу React Server Components 远程RCE.jar
-
Или запустите из командной строки:
java -jar React Server Components 远程RCE.jar
-
При первом запуске отобразится отказ от ответственности. Пожалуйста, внимательно прочитайте и согласитесь для продолжения.
📋 Руководство по использованию
1️⃣ Базовая конфигурация
Перед использованием любой функции необходимо настроить базовую информацию:
- Целевой URL: Введите адрес целевого сайта (например,
http://192.168.1.100:3000)
- Путь атаки: Путь приложения (по умолчанию:
/apps, можно изменить в зависимости от цели)
- Таймаут: Время ожидания ответа в секундах (по умолчанию: 30 секунд)
- Пользовательские заголовки: Опционально, одна строка на заголовок, формат
Header-Name: value
2️⃣ Обнаружение уязвимости
- Заполните целевой URL и базовую конфигурацию
- Нажмите кнопку "Проверить уязвимость"
- Дождитесь результата проверки; инструмент автоматически определит, есть ли уязвимость на цели
Подсказка: Рекомендуется сначала выполнить обнаружение уязвимости, чтобы убедиться в её наличии перед дальнейшими действиями.
🎮 Режимы атаки (подробно)
Режим 1: Вывод команд
Когда использовать: для выполнения системных команд и просмотра результата.
Инструкции:
- Переключитесь на вкладку "Вывод команд"
- Введите команду в поле ввода (например:
whoami, ipconfig, ls -la)
- Нажмите кнопку "Выполнить команду"
- Просмотрите результат выполнения в нижней текстовой области
Примеры полезных команд:
- Windows:
whoami, ipconfig, dir, net user
- Linux:
whoami, ifconfig, ls -la, uname -a
Режим 2: Внедрение memory shell
Когда использовать: для создания постоянного бэкдора на целевом сервере.
Инструкции:
-
Переключитесь на вкладку "Внедрение memory shell"
-
Задайте путь доступа к memory shell (например: /exec)
-
Нажмите кнопку "Внедрить memory shell"
-
После успешного внедрения выполняйте команды следующим образом:
Откройте: http://целевой_адрес/exec?cmd=whoami
Примечания:
- Memory shell регистрируется в памяти целевого приложения, не оставляя файлов на диске
- После перезагрузки сервера memory shell перестаёт работать
- Команды передаются через URL-параметр
cmd
Режим 3: Reverse Shell
Когда использовать: для получения интерактивной оболочки целевой системы.
Инструкции:
-
Запустите прослушивание на локальной машине (например, с помощью netcat):
nc -lvnp 4444
-
Переключитесь на вкладку "Reverse Shell"
-
Введите IP для прослушивания (IP вашей машины)
-
Введите порт для прослушивания (например: 4444)
-
Нажмите кнопку "Отправить reverse shell"
-
Вернитесь в окно netcat и ожидайте подключения
Важные замечания:
- Убедитесь, что целевой сервер может связаться с вашим IP и портом
- Межсетевой экран должен разрешать входящие соединения на указанный порт
- В реальной среде возможны ограничения сетевой политики
Режим 4: Массовое сканирование
Когда использовать: для массового сканирования нескольких целей на наличие уязвимости.
Инструкции:
- Переключитесь на вкладку "Массовое сканирование"
- Введите список целевых URL в текстовое поле (по одному на строку)
- Нажмите кнопку "Начать сканирование"
- Просмотрите результаты; инструмент отметит цели с уязвимостью
⚙️ Расширенная конфигурация
Настройка HTTP-прокси
Используется для перенаправления трафика в такие инструменты, как Burp Suite, для анализа запросов и ответов.
Инструкции:
- Нажмите в верхнем меню "Настройки" → "Настройки прокси"
- Выберите "Включить"
- Введите хост прокси (например:
127.0.0.1)
- Введите порт прокси (например:
8080)
- Нажмите "Сохранить"
Настройка Burp Suite:
- Убедитесь, что прослушиватель прокси Burp Suite запущен
- Адрес прослушивания по умолчанию:
127.0.0.1:8080
- В Burp можно перехватывать и изменять все запросы, отправляемые инструментом
Просмотр статуса прокси:
- После настройки в правом верхнем углу интерфейса отображается статус прокси
- Зелёный — включено, серый — не настроено
🛡️ Рекомендации по безопасности
- Используйте только в авторизованной среде: Убедитесь, что у вас есть явное разрешение на тестирование цели.
- Не используйте на продуктивных системах: Избегайте повреждения продуктивных систем.
- Защищайте тестовые данные: Конфиденциальная информация, полученная в процессе тестирования, должна надежно храниться.
- Соблюдайте законодательство: Несанкционированное тестирование на проникновение может нарушать закон.
- Использование на CTF: Инструмент подходит для CTF, полигонов и других законных сред.
❓ Часто задаваемые вопросы
В1: Что делать, если появляется сообщение "Уязвимость не обнаружена"?
Возможные причины:
- Целевой URL неверен или сервис не запущен
- Уязвимости нет на цели
- Неправильно настроен путь атаки
- Сеть недоступна или запросы блокируются межсетевым экраном
Решения:
- Проверьте, доступен ли целевой URL
- Попробуйте изменить параметр пути атаки
- Проверьте сетевое соединение и настройки прокси
В2: Команда выполняется, но нет вывода?
Возможные причины:
- Команда выполняется успешно, но без вывода (например, некоторые команды записи в файл)
- Ограничения прав на целевой системе
- Ошибка синтаксиса команды
Решения: