##
# Сканер раскрытия исходного кода .js RSC
Сканер безопасности для обнаружения уязвимости CVE-2025-55183 – раскрытия исходного кода .js React Server Components (RSC).
Данный сканер обнаруживает раскрытие исходного кода в .js React Server Components (RSC). Вредоносный HTTP-запрос, отправленный на уязвимую серверную функцию, может небезопасно вернуть исходный код любой серверной функции, если аргумент преобразуется в строку.
* 🔍 **Автоматическое сканирование** : Сканирует отдельные URL-адреса или списки хостов
* ⚡ **Параллельное сканирование** : Многопоточное сканирование для ускорения работы
* 🔄 **Логика повторных попыток** : Автоматические повторы с экспоненциальной задержкой при временных ошибках
* 📊 **Несколько форматов вывода** : Текстовый, JSON и CSV форматы
* 🚦 **Ограничение скорости** : Настраиваемое ограничение запросов во избежание перегрузки целей
* 📈 **Индикаторы прогресса** : Визуальные полосы прогресса для длительных сканирований
* 🎭 **Ротация User-Agent** : Случайная ротация User-Agent для обхода обнаружения
* 🔇 **Режимы подробного вывода** : Несколько уровней детализации для отладки
Создайте текстовый файл с одним хостом на строку. Сканер извлекает имя хоста из первого столбца (поддерживает ввод с разделителями табуляции или пробелами):
example.com 192.0.2.1 Cloudflare
subdomain.example.com 192.0.2.2 Cloudflare
Строки, начинающиеся с `#`, считаются комментариями и игнорируются.
input Целевой URL или файл со списком хостов
-h, --help Показать справку и выйти
Тайм-аут запроса в секундах (по умолчанию: 10)
--threads THREADS Количество параллельных потоков (по умолчанию: 1)
--delay DELAY Задержка между запросами в секундах (по умолчанию: 0.5)
Запросов в секунду на один хост (0 для отключения, по умолчанию: 10.0)
--retries RETRIES Количество повторных попыток для невыполненных запросов (по умолчанию: 3)
-v, --verbose Увеличить подробность вывода (-v, -vv, -vvv)
-q, --quiet Подавить несущественный вывод
# Сканировать с 10 параллельными потоками
python3 scanner.py hosts.txt --threads 10
python3 scanner.py hosts.txt --format json -o results.json
python3 scanner.py hosts.txt --format csv -o results.csv
# Установить задержку между запросами и ограничение скорости
python3 scanner.py hosts.txt --delay 1.0 --rate-limit 5.0
python3 scanner.py hosts.txt --quiet -o results.json
Человекочитаемый текстовый вывод со сводкой сканирования и детальными результатами:
============================================================
============================================================
============================================================
[+] - Not vulnerable
Структурированный вывод JSON с полными деталями сканирования:
"chunk_paths": ["/_next/static/chunks/..."],
Значения, разделённые запятыми, для удобного импорта в электронные таблицы:
URL,Vulnerable,Chunks Found,Action IDs Found,Leaked Sources Count,Error
1. **Обнаружение чанков** : Загружает целевую страницу и извлекает пути к JavaScript-чанкам из ссылок `/_next/static/chunks/`
2. **Извлечение идентификаторов действий** : Загружает файлы чанков и извлекает идентификаторы серверных действий (шестнадцатеричные строки длиной 40–42 символа)
3. **Эксплуатация** : Отправляет вредоносные запросы с нагрузкой `$F1` каждому идентификатору действия, чтобы вызвать раскрытие исходного кода
* `1`: Найден один или более уязвимых хостов
* **Только авторизованное тестирование** : Используйте этот инструмент только в системах, которыми вы владеете или на тестирование которых имеете явное письменное разрешение
* **Ограничение скорости** : Используйте соответствующее ограничение скорости, чтобы не перегружать целевые серверы
* **Этичное использование** : Этот инструмент предназначен только для исследований безопасности и авторизованного тестирования на проникновение
* Убедитесь, что целевые URL-адреса доступны
* Включите подробный режим: `-vv` для просмотра подробных сообщений об ошибках
* Понизьте лимит запросов: `--rate-limit 2.0`
* Используйте меньше потоков: `--threads 1`
Примечание: `tqdm` необязателен – сканер будет работать и без него, но не будет показывать полосы прогресса.
Этот инструмент предоставляется только для образовательных целей и авторизованного тестирования безопасности.
Этот инструмент предназначен для исследований безопасности и авторизованного тестирования на проникновение. Несанкционированное использование против систем, которыми вы не владеете или на тестирование которых не имеете разрешения, является незаконным и неэтичным. Авторы не несут ответственности за любое неправомерное использование этого инструмента.
* CVE-2025-55183: Уязвимость раскрытия исходного кода .js RSC
The full story
This article is one source in a clustered incident — the cluster page carries the summary, timeline and every other outlet covering it.
