Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!
-CVE-2025-55182 — Браузерный сканер, который проверяет репозитории GitHub на известные уязвимости в зависимостях React и Next.js, проверяя все ветки и поддерживая приватные репозитории через PAT. | Kitploit
Браузерный сканер, который проверяет репозитории GitHub на известные уязвимости в зависимостях React и Next.js, проверяя все ветки и поддерживая приватные репозитории через PAT.
Современный веб-браузер (Chrome, Firefox, Edge и т. д.)
Доступ к GitHub (опционально: Personal Access Token для частных репозиториев)
Пошаговая инструкция
1. Открыть консоль браузера
Перейдите на любую страницу GitHub (например, https://github.com)
Откройте DevTools:
Chrome/Edge: F12 или Ctrl+Shift+I (Windows) / Cmd+Option+I (Mac)
Firefox: F12 или Ctrl+Shift+K (Windows) / Cmd+Option+K (Mac)
Перейдите на вкладку Console
2. Скопировать и выполнить скрипт
Откройте файл main.js
Скопируйте всё содержимое файла
Вставьте в консоль браузера
Нажмите Enter, чтобы выполнить
3. Настроить сканирование
Скрипт задаст несколько интерактивных вопросов:
3.1. Аутентификация (первый вопрос)
root@kitploit:~
🔐 Scan private repos too?
OK = Enter PAT
Cancel = Public only
OK: Вас попросят ввести Personal Access Token (PAT) GitHub
Позволяет сканировать частные репозитории
Необходим для доступа к организациям
Cancel: Будут сканироваться только публичные репозитории
Как создать PAT:
Перейдите по адресу: https://github.com/settings/tokens
Нажмите "Generate new token" → "Generate new token (classic)"
Дайте описательное имя
Выберите область repo (полный доступ к репозиториям)
Нажмите "Generate token"
Скопируйте токен немедленно (он больше не будет показан)
3.2. Область сканирования (если аутентифицированы)
root@kitploit:~
🔍 What do you want to scan?
OK = Organizations
Cancel = User Profile
OK: Сканировать организации
Cancel: Сканировать только профиль пользователя
3.3. Выбор организаций (если выбрано "Organizations")
root@kitploit:~
🏢 Scan all organizations?
OK = All organizations
Cancel = Single organization
Вариант A - Все организации (OK):
Скрипт автоматически найдёт все организации аутентифицированного пользователя
Просканирует все репозитории всех организаций
Вариант B - Конкретная организация (Cancel):
Вас попросят ввести URL или название организации:
root@kitploit:~
🔗 Enter organization URL or name:
Example: github.com/my-org or my-org
Принимаемые форматы:
github.com/my-org
https://github.com/my-org
my-org (только имя)
3.4. Профиль пользователя (если не аутентифицированы или выбрано Profile)
Если вы находитесь на странице профиля GitHub, скрипт обнаружит это автоматически
В противном случае будет предложено:
root@kitploit:~
Enter GitHub username:
📊 Функции
✨ Проверка по всем веткам
Скрипт проверяет все ветки каждого репозитория, а не только ветку по умолчанию. Это гарантирует, что уязвимости в ветках разработки, staging или других активных ветках будут обнаружены.
🏢 Поддержка организаций
Сканирует репозитории организаций GitHub
Возможность сканировать все организации или одну конкретную
Поддерживает ввод URL или названия организации
🔒 Доступ к частным репозиториям
С действительным Personal Access Token скрипт может:
Получать доступ к частным репозиториям
Сканировать частные организации
Проверять ветки частных репозиториев
📈 Результаты
После выполнения скрипт отобразит:
Таблица результатов
Таблица в консоли, показывающая:
Repo: Имя репозитория
Branch: Имя проверенной ветки
Next: Версия Next.js (если присутствует)
React: Версия React (если присутствует)
ReactDOM: Версия react-dom (если присутствует)
RSCWebpack: Версия react-server-dom-webpack (если присутствует)
RSCParcel: Версия react-server-dom-parcel (если присутствует)
RSCTurbopack: Версия react-server-dom-turbopack (если присутствует)
Status: Статус уязвимости
✅ Safe: Уязвимостей не обнаружено
⚠️ CVE-XXXX-XXXXX: Обнаружена уязвимость
Сводка
root@kitploit:~
📊 Summary:
Total repos: 15
Branches scanned: 23
With package.json: 20
Skipped: 3 (no package.json)
⚠️ 5 vulnerable repo(s) found!
или
root@kitploit:~
✅ No vulnerabilities found!
⚙️ Технические настройки
Задержка между API-запросами: 200 мс (для предотвращения ограничения скорости)
Задержка между сканированиями: 30 мс
Результатов на странице: 100 элементов
Поддержка частных репозиториев: Да (с PAT)
Проверка веток: Все ветки каждого репозитория
🔧 Устранение неполадок
Ошибка: "Token invalid"
Проверьте, что токен скопирован правильно
Убедитесь, что токен имеет область repo
Проверьте, не истёк ли срок действия токена
Ошибка: "No repositories found"
Проверьте, существует ли пользователь/организация
Если вы сканируете организации, убедитесь, что у вас есть доступ
Проверьте, есть ли репозитории в профиле/организации
Ошибка: "No organizations found"
Проверьте, что вы аутентифицированы с действительным токеном
Убедитесь, что вы состоите в организациях
Токен должен иметь разрешения на доступ к организациям
Сканирование слишком медленное
Скрипт намеренно делает задержки, чтобы избежать ограничения скорости
Репозитории с большим количеством веток займут больше времени
Организации с большим количеством репозиториев займут больше времени
📝 Важные заметки
Ограничение скорости: Скрипт соблюдает лимиты API GitHub с автоматическими задержками
Конфиденциальность: Токен используется только локально в браузере, не отправляется на внешние серверы
Точность: Сканер проверяет только package.json в корне репозитория
Ветки: Проверяются все ветки, но отображаются только те, у которых есть package.json
Версии: Сканер обнаруживает уязвимые версии на основе определений CVE
🛡️ Безопасность
Скрипт полностью выполняется в браузере (на стороне клиента)
Никакие данные не отправляются на внешние серверы
Personal Access Token используется только для запросов к API GitHub
Рекомендуется использовать токены с минимально необходимыми областями
📄 Лицензия
MIT License
🔄 Версия
3.0.0
Разработано для обнаружения уязвимостей безопасности в проектах React и Next.js