
CVE-2025-55183 Сканер
Сканер безопасности для обнаружения уязвимости CVE-2025-55183 – раскрытия исходного кода Next.js React Server Components (RSC).
Данный сканер обнаруживает раскрытие исходного кода в Next.js React Server Components (RSC). Вредоносный HTTP-запрос, отправленный на уязвимую серверную функцию, может небезопасно вернуть исходный код любой серверной функции, если аргумент преобразуется в строку.
pip install -r requirements.txt
Или установите вручную:
pip install requests urllib3 tqdm
# Сканировать один URL
python3 scanner.py https://example.com
# Сканировать из файла со списком хостов
python3 scanner.py hosts.txt
Создайте текстовый файл с одним хостом на строку. Сканер извлекает имя хоста из первого столбца (поддерживает ввод с разделителями табуляции или пробелами):
example.com 192.0.2.1 Cloudflare
subdomain.example.com 192.0.2.2 Cloudflare
https://app.example.com
Строки, начинающиеся с #, считаются комментариями и игнорируются.
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 Подавить несущественный вывод
# Сканировать с 10 параллельными потоками
python3 scanner.py hosts.txt --threads 10
# Вывести результаты в формате JSON
python3 scanner.py hosts.txt --format json -o results.json
# Вывести результаты в формате CSV
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 -vv
# Подавить несущественный вывод
python3 scanner.py hosts.txt --quiet -o results.json
Человекочитаемый текстовый вывод со сводкой сканирования и детальными результатами:
============================================================
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 с полными деталями сканирования:
{
"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": [...]
}
]
}
Значения, разделённые запятыми, для удобного импорта в электронные таблицы:
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,
Сканер выполняет трёхэтапный процесс:
/_next/static/chunks/$F1 каждому идентификатору действия, чтобы вызвать раскрытие исходного кода0: Уязвимых хостов не найдено1: Найден один или более уязвимых хостовЕсли возникают ошибки подключения:
--timeout 30-vv для просмотра подробных сообщений об ошибкахЕсли цели блокируют запросы:
--delay 2.0--rate-limit 2.0--threads 1Если появляются ошибки импорта:
pip install -r requirements.txt
Примечание: tqdm необязателен – сканер будет работать и без него, но не будет показывать полосы прогресса.
Этот инструмент предоставляется только для образовательных целей и авторизованного тестирования безопасности.
Этот инструмент предназначен для исследований безопасности и авторизованного тестирования на проникновение. Несанкционированное использование против систем, которыми вы не владеете или на тестирование которых не имеете разрешения, является незаконным и неэтичным. Авторы не несут ответственности за любое неправомерное использование этого инструмента.