## https://sploitus.com/exploit?id=KITPLOIT:TOOLS-GITHUB-OMAIDNEBARI-RSC-SCANNER-POC
# Сканер раскрытия исходного кода Next.js RSC
Сканер безопасности для обнаружения уязвимости CVE-2025-55183 – раскрытия исходного кода Next.js React Server Components (RSC).
## Описание
Данный сканер обнаруживает раскрытие исходного кода в Next.js React Server Components (RSC). Вредоносный HTTP-запрос, отправленный на уязвимую серверную функцию, может небезопасно вернуть исходный код любой серверной функции, если аргумент преобразуется в строку.
## Возможности
* 🔍 **Автоматическое сканирование** : Сканирует отдельные URL-адреса или списки хостов
* ⚡ **Параллельное сканирование** : Многопоточное сканирование для ускорения работы
* 🔄 **Логика повторных попыток** : Автоматические повторы с экспоненциальной задержкой при временных ошибках
* 📊 **Несколько форматов вывода** : Текстовый, JSON и CSV форматы
* 🚦 **Ограничение скорости** : Настраиваемое ограничение запросов во избежание перегрузки целей
* 📈 **Индикаторы прогресса** : Визуальные полосы прогресса для длительных сканирований
* 🎭 **Ротация User-Agent** : Случайная ротация User-Agent для обхода обнаружения
* 🔇 **Режимы подробного вывода** : Несколько уровней детализации для отладки
## Установка
### Предварительные требования
* Python 3.7 или выше
### Установка зависимостей
root@kitploit:~
pip install -r requirements.txt
Или установите вручную:
root@kitploit:~
pip install requests urllib3 tqdm
## Использование
### Базовое использование
root@kitploit:~
# Сканировать один URL
python3 scanner.py https://example.com
# Сканировать из файла со списком хостов
python3 scanner.py hosts.txt
### Формат списка хостов
Создайте текстовый файл с одним хостом на строку. Сканер извлекает имя хоста из первого столбца (поддерживает ввод с разделителями табуляции или пробелами):
root@kitploit:~
example.com 192.0.2.1 Cloudflare
subdomain.example.com 192.0.2.2 Cloudflare
https://app.example.com
Строки, начинающиеся с `#`, считаются комментариями и игнорируются.
### Параметры командной строки
root@kitploit:~
positional arguments:
input Целевой URL или файл со списком хостов
optional arguments:
-h, --help Показать справку и выйти
-t TIMEOUT, --timeout TIMEOUT
Тайм-аут запроса в секундах (по умолчанию: 10)
-o OUTPUT, --output OUTPUT
Файл для вывода результатов
--format {text,json,csv}
Формат вывода (по умолчанию: text)
--threads THREADS Количество параллельных потоков (по умолчанию: 1)
--delay DELAY Задержка между запросами в секундах (по умолчанию: 0.5)
--rate-limit RATE_LIMIT
Запросов в секунду на один хост (0 для отключения, по умолчанию: 10.0)
--retries RETRIES Количество повторных попыток для невыполненных запросов (по умолчанию: 3)
-v, --verbose Увеличить подробность вывода (-v, -vv, -vvv)
-q, --quiet Подавить несущественный вывод
### Примеры
#### Параллельное сканирование
root@kitploit:~
# Сканировать с 10 параллельными потоками
python3 scanner.py hosts.txt --threads 10
#### Вывод в JSON
root@kitploit:~
# Вывести результаты в формате JSON
python3 scanner.py hosts.txt --format json -o results.json
#### Вывод в CSV
root@kitploit:~
# Вывести результаты в формате CSV
python3 scanner.py hosts.txt --format csv -o results.csv
#### Ограничение скорости
root@kitploit:~
# Установить задержку между запросами и ограничение скорости
python3 scanner.py hosts.txt --delay 1.0 --rate-limit 5.0
#### Подробный режим
root@kitploit:~
# Включить подробный вывод для отладки
python3 scanner.py hosts.txt -vv
#### Тихий режим
root@kitploit:~
# Подавить несущественный вывод
python3 scanner.py hosts.txt --quiet -o results.json
## Форматы вывода
### Текстовый формат (по умолчанию)
Человекочитаемый текстовый вывод со сводкой сканирования и детальными результатами:
root@kitploit:~
============================================================
SCAN SUMMARY
============================================================
Total hosts scanned: 5
Vulnerable hosts: 2
Safe hosts: 3
============================================================
[!] https://example.com - VULNERABLE
Found 3 leaked source code(s)
[+] https://example2.com - Not vulnerable
### Формат JSON
Структурированный вывод JSON с полными деталями сканирования:
root@kitploit:~
{
"summary": {
"total_hosts": 5,
"vulnerable_hosts": 2,
"safe_hosts": 3
},
"results": [
{
"url": "https://example.com",
"vulnerable": true,
"chunk_paths": ["/_next/static/chunks/..."],
"action_ids": ["abc123..."],
"leaked_sources": [...]
}
]
}
### Формат CSV
Значения, разделённые запятыми, для удобного импорта в электронные таблицы:
root@kitploit:~
URL,Vulnerable,Chunks Found,Action IDs Found,Leaked Sources Count,Error
https://example.com,Yes,5,3,2,
https://example2.com,No,0,0,0,
## Как это работает
Сканер выполняет трёхэтапный процесс:
1. **Обнаружение чанков** : Загружает целевую страницу и извлекает пути к JavaScript-чанкам из ссылок `/_next/static/chunks/`
2. **Извлечение идентификаторов действий** : Загружает файлы чанков и извлекает идентификаторы серверных действий (шестнадцатеричные строки длиной 40–42 символа)
3. **Эксплуатация** : Отправляет вредоносные запросы с нагрузкой `$F1` каждому идентификатору действия, чтобы вызвать раскрытие исходного кода
## Коды завершения
* `0`: Уязвимых хостов не найдено
* `1`: Найден один или более уязвимых хостов
## Вопросы безопасности
* **Только авторизованное тестирование** : Используйте этот инструмент только в системах, которыми вы владеете или на тестирование которых имеете явное письменное разрешение
* **Ограничение скорости** : Используйте соответствующее ограничение скорости, чтобы не перегружать целевые серверы
* **Этичное использование** : Этот инструмент предназначен только для исследований безопасности и авторизованного тестирования на проникновение
## Устранение неполадок
### Ошибки подключения
Если возникают ошибки подключения:
* Проверьте интернет-соединение
* Убедитесь, что целевые URL-адреса доступны
* Увеличьте тайм-аут: `--timeout 30`
* Включите подробный режим: `-vv` для просмотра подробных сообщений об ошибках
### Проблемы с ограничением скорости
Если цели блокируют запросы:
* Увеличьте задержку: `--delay 2.0`
* Понизьте лимит запросов: `--rate-limit 2.0`
* Используйте меньше потоков: `--threads 1`
### Отсутствующие зависимости
Если появляются ошибки импорта:
root@kitploit:~
pip install -r requirements.txt
Примечание: `tqdm` необязателен – сканер будет работать и без него, но не будет показывать полосы прогресса.
## Лицензия
Этот инструмент предоставляется только для образовательных целей и авторизованного тестирования безопасности.
## Отказ от ответственности
Этот инструмент предназначен для исследований безопасности и авторизованного тестирования на проникновение. Несанкционированное использование против систем, которыми вы не владеете или на тестирование которых не имеете разрешения, является незаконным и неэтичным. Авторы не несут ответственности за любое неправомерное использование этого инструмента.
## Ссылки
* CVE-2025-55183: Уязвимость раскрытия исходного кода Next.js RSC
* Документация Next.js