
React2Shell (CVE-2025-55182) эксплойт
Cкрипт на Python, предоставляющий интерактивную оболочку для эксплуатации критической уязвимости удаленного выполнения кода (RCE) CVE-2025-55182 в уязвимых React Server Components и приложениях Next.js. Данный эксплойт нацелен на ошибку десериализации, которая позволяет неаутентифицированное удаленное выполнение кода. Он включает модульную систему для добавления техник обхода WAF.
[!NOTE] Этот эксплойт предназначен для взаимодействия с уязвимым конечным RSC-протоколом. Результаты выполнения захватываются через механизм ответов сервера. Команды, не приводящие к выводу, вернут
(empty).
[!CAUTION] Этот код предназначен только для исследовательских и образовательных целей. Он создан, чтобы помочь понять, обнаруживать и устранять уязвимость CVE-2025-55182. Не используйте его против систем без явного разрешения.
Использование этого скрипта осуществляется на свой страх и риск, и автор(ы) не несут ответственности за любое неправомерное использование или непредвиденные последствия.
Используя этот код, пользователь подтверждает и соглашается со следующим:
- Пользователь несет единоличную ответственность за любые юридические последствия, возникшие в результате использования этого скрипта.
- Пользователь не будет привлекать автора(ов) к ответственности за любые убытки, потери или судебные иски, возникшие в результате использования этого кода.
- Пользователь обязуется соблюдать все применимые законы и нормативные акты.
- Пользователь признает, что использование этого скрипта против систем без разрешения может нарушать законы и условия обслуживания, что потенциально может привести к серьезным санкциям.
- Пользователю рекомендуется проконсультироваться с собственным юристом перед использованием этого кода.
Данный эксплойт включает динамическую систему модулей обхода WAF. Модули хранятся в каталоге waf_modules в виде отдельных файлов Python. Каждый модуль должен определять функцию modify_request(body, headers), которая принимает тело запроса и заголовки по умолчанию, изменяет их по мере необходимости для обхода и возвращает новые body, headers.
bypass_custom.py) в каталоге waf_modules, содержащий функцию modify_request.--help, чтобы увидеть доступные варианты обхода (например, --bypass-custom для bypass_custom.py). Используйте соответствующий флаг для активации модуля.Пример: Модуль bypass_vercel.py включен в качестве примера и реализует техники, потенциально эффективные против развертываний Vercel.
--modify-request)Скрипт позволяет напрямую изменять определенные атрибуты объекта requests.Session, используемого для выполнения HTTP-запросов. Это обеспечивает детальный контроль над такими аспектами, как проверка SSL, таймауты и, возможно, другие настройки уровня сессии.
--modify-request <KEY> <VALUE>. <KEY> соответствует атрибуту объекта requests.Session (например, verify, timeout).<VALUE>: true/false становятся булевыми значениями, числовые строки становятся целыми числами или числами с плавающей запятой, в противном случае значение остается строкой.--modify-request verify True--modify-request verify False (эквивалентно старому флагу --insecure)python CVE-2025-55182.py --help-modify-request для древовидного представления распространенных опций.requirements.txt)python -m venv venv и source venv/bin/activate в Unix-подобных системах или venv\Scripts\activate в Windows).
pip install -r requirements.txt
waf_modules:
mkdir waf_modules
bypass_vercel.py) в этот каталог.Настройте уязвимое окружение (только для тестирования):
docker run --rm -p 127.0.0.1:3000:3000 ghcr.io/l4rm4nd/cve-2025-55182:latest
Дополнительная информация: https://github.com/l4rm4nd/CVE-2025-55182
Выполните скрипт:
python CVE-2025-55182.py --help # Чтобы увидеть все опции, включая обходы WAF
# Пример с модулем обхода:
python CVE-2025-55182.py --host 127.0.0.1 --port 3000 --endpoint / --bypass-vercel
Если не использовать аргументы командной строки, скрипт в интерактивном режиме запросит host, port и endpoint.
Взаимодействуйте с оболочкой:
exit или quit для завершения сессии оболочки.