
Автоматизированный сканер для эксплуатации RCE CVE-2025-55182 в Next.js с 8 техниками обхода WAF, выполнением произвольных команд и режимом обнаружения только для тестирования при авторизованном пентесте.
Расширенный инструмент для тестирования на проникновение, предназначенный для обнаружения и эксплуатации уязвимости CVE-2025-55182 в приложениях Next.js
📋 Оглавление Обзор
Возможности
Установка
Использование
Примеры
Техники обхода
Технические детали
Отказ от ответственности
Вклад в проект
Лицензия
🔍 Обзор CVE-2025-55182 — это критическая уязвимость удалённого выполнения кода (RCE), затрагивающая приложения Next.js через React Server Components. Этот сканер предоставляет автоматизированный способ обнаружения и эксплуатации данной уязвимости с использованием различных техник обхода WAF.
Оценка CVSS: 9.8 (критическая)
✨ Возможности Несколько вариантов полезной нагрузки: различные схемы эксплуатации
Техники обхода WAF: 8 различных методов обхода
Выполнение произвольных команд: выполнение произвольных системных команд
Проверка уязвимости: режим только тестирования для безопасного обнаружения
Поддержка прокси: маршрутизация трафика через прокси для отладки
Обход SSL: возможность пропустить проверку SSL-сертификата
Механизм повторов: автоматический повтор при сбое
Цветной вывод: удобный для чтения консольный интерфейс
🚀 Установка Предварительные требования Python 3.6 или выше
Пакетный менеджер pip
pip install -r requirements.txt
chmod +x scanner.py Установка через Docker bash
docker build -t cve-2025-55182-scanner .
docker run --rm cve-2025-55182-scanner -h 📖 Использование Базовое использование bash
python scanner.py -h
python scanner.py -d http://target.com --test-only
python scanner.py -d http://target.com -c "whoami" Параметры командной строки Опция Описание По умолчанию -d, --domain URL-адрес цели http://localhost:3000 -c, --command Команда для выполнения id -t, --technique Техника обхода (1-8) 1 -p, --proxy Прокси-сервер None -k, --insecure Пропустить проверку SSL False --test-only Только проверить наличие уязвимости False -h, --help Показать справочное сообщение N/A 📚 Примеры Базовая эксплуатация bash
python scanner.py -d http://vulnapp.com --test-only
python scanner.py -d http://vulnapp.com -c "id"
python scanner.py -d https://target.com -c "ls -la" -k
python scanner.py -d http://localhost:3000 -c "cat /etc/passwd" Примеры обхода WAF bash
python scanner.py -d http://target.com -c "uname -a" -t 2
python scanner.py -d https://target.com -c "whoami" -t 3 -k
python scanner.py -d http://target.com -c "pwd" -t 4 -p http://127.0.0.1:8080
for i in {1..8}; do echo "Trying technique $i" python scanner.py -d http://target.com -c "hostname" -t $i echo "" done Расширенное использование bash
for target in $(cat targets.txt); do echo "Testing $target" python scanner.py -d $target --test-only done
python scanner.py -d http://target.com -c "ifconfig" > output.txt
python scanner.py -d https://target.com -c "env" -p http://127.0.0.1:8080 -k 🛡️ Техники обхода Сканер включает 8 различных техник обхода WAF:
Стандартная полезная нагрузка: исходная схема эксплуатации
Base64-кодирование: кодирование команд в Base64
Unicode-кодирование: использование кодировки символов Unicode
Изменение регистра: случайные вариации регистра
Двойное кодирование: двойное URL-кодирование
Нулевые байты: инъекция нулевых байтов
Смешанные заголовки: различные HTTP-заголовки
Случайные задержки: добавление случайных интервалов ожидания
Каждую технику можно выбрать с помощью флага -t.
🔧 Технические детали Сведения об уязвимости CVE-2025-55182 — это уязвимость загрязнения прототипа (prototype pollution) в Next.js, которая приводит к удалённому выполнению кода через React Server Components. Уязвимость позволяет злоумышленникам выполнять произвольные команды на сервере.
Структура полезной нагрузки Инструмент использует специально сформированный запрос multipart/form-data с загрязнением прототипа для достижения RCE:
Загрязнение прототипа: загрязняет цепочку прототипов Promise
Инъекция команд: внедряет выполнение child_process в Node.js
Извлечение результатов: извлекает результаты через заголовки перенаправления
Метод обнаружения Сканер отправляет специально сформированные запросы и ищет:
Заголовки X-Action-Redirect, содержащие вывод команды
Определённые шаблоны ответов, указывающие на успешную эксплуатацию
Сообщения об ошибках, указывающие на наличие уязвимости
⚠️ Отказ от ответственности ВАЖНО: ТОЛЬКО ДЛЯ ЗАКОННОГО И ЭТИЧНОГО ИСПОЛЬЗОВАНИЯ
Этот инструмент предоставляется для:
Научных исследований в области безопасности и обучения
Авторизованного тестирования на проникновение
Оценки уязвимостей при наличии соответствующего разрешения
Целей защитной безопасности
НЕ ИСПОЛЬЗУЙТЕ ЭТОТ ИНСТРУМЕНТ ДЛЯ:
Несанкционированного тестирования систем
Незаконной деятельности
Вредоносных целей
Нарушения условий обслуживания
Используя этот инструмент, вы соглашаетесь:
Использовать его только на системах, которыми вы владеете или на тестирование которых имеете явное разрешение
Соблюдать все применимые законы и нормативные акты
Нести полную ответственность за свои действия
Не возлагать ответственность на автора за любое неправомерное использование
🤝 Вклад в проект Вклад приветствуется! Вот как вы можете помочь:
Сообщение о проблемах Проверьте, не существует ли уже такая проблема
Предоставьте подробные шаги воспроизведения
Включите сообщения об ошибках и журналы
Укажите детали вашего окружения
Вклад в код Сделайте форк репозитория
Создайте ветку для новой функции
Пишите понятные сообщения коммитов
Добавьте тесты, если применимо
Отправьте pull request
Запросы новых функций Предлагайте новые функции через GitHub issues с меткой «enhancement».
📄 Лицензия Этот проект лицензирован под лицензией MIT — подробности см. в файле LICENSE.
Лицензия MIT
Copyright (c) 2025
Настоящим предоставляется бесплатное разрешение любому лицу, получившему копию этого программного обеспечения и связанных файлов документации (далее — «Программное обеспечение»), на использование Программного обеспечения без ограничений, включая без ограничений права на использование, копирование, изменение, объединение, публикацию, распространение, сублицензирование и/или продажу копий Программного обеспечения, а также на предоставление Программного обеспечения лицам, которым оно предоставляется, при соблюдении следующих условий:
Указанное выше уведомление об авторских правах и данное уведомление о разрешении должны быть включены во все копии или значительные части Программного обеспечения.
ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ ПРЕДОСТАВЛЯЕТСЯ «КАК ЕСТЬ», БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ, ЯВНЫХ ИЛИ ПОДРАЗУМЕВАЕМЫХ, ВКЛЮЧАЯ, НО НЕ ОГРАНИЧИВАЯСЬ, ГАРАНТИЯМИ ТОВАРНОЙ ПРИГОДНОСТИ, СООТВЕТСТВИЯ ОПРЕДЕЛЁННОМУ НАЗНАЧЕНИЮ И ОТСУТСТВИЯ НАРУШЕНИЙ ПРАВ. НИ ПРИ КАКИХ ОБСТОЯТЕЛЬСТВАХ АВТОРЫ ИЛИ ПРАВООБЛАДАТЕЛИ НЕ НЕСУТ ОТВЕТСТВЕННОСТИ ПО КАКИМ-ЛИБО ИСКАМ, ЗА УЩЕРБ ИЛИ ПО ИНЫМ ТРЕБОВАНИЯМ, БУДЬ ТО В РАМКАХ ДОГОВОРА, ДЕЛИКТА ИЛИ ИНЫМ ОБРАЗОМ, ВОЗНИКАЮЩИМ ИЗ, В СВЯЗИ С ПРОГРАММНЫМ ОБЕСПЕЧЕНИЕМ ИЛИ ИСПОЛЬЗОВАНИЕМ ИЛИ ИНЫМИ ДЕЙСТВИЯМИ С НИМ. 🔗 Ссылки Официальная запись CVE-2025-55182
Шаблон ProjectDiscovery Nuclei
Уведомления безопасности Next.js
Документация React Server Components
⭐ История звёзд Если вы считаете этот инструмент полезным, пожалуйста, поставьте ему звезду на GitHub!
Помните: с большой силой приходит большая ответственность. Используйте этот инструмент этично и законно.