
Página inicial Next.js intencionalmente vulnerável demonstrando CVE-2025-55182: injeção JSON via formulário de contato levando a RCE/SSRF através de desserialização insegura em React Server Components.
Este repositório contém um exemplo de landing page corporativa multi-página em Next.js 15.0.0 + React 19.0.0. O site simula uma estrutura como t1.ru: página inicial, produtos, casos, mídia, sobre a empresa, contatos. Utiliza React Server Components (RSC), Tailwind CSS, Framer Motion para animações, lucide-react para ícones, shadcn/ui para badges e Prisma com SQLite para o banco de dados (o formulário de contatos salva as mensagens).
O projeto foi intencionalmente tornado vulnerável para demonstrar a PT-2025-48817 — injeção de JSON através do formulário de contato, que pode levar a RCE/SSRF devido a desserialização insegura no react-server-dom-webpack.
Clone o repositório:
git clone <url-do-repo>
cd <diretório>
Instale as dependências:
npm install
Se houver problemas de versão (ex.: erros de build), tente:
npm install --legacy-peer-deps
Ou atualize o Node.js:
sudo apt remove --purge nodejs npm -y
curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -
sudo apt update
sudo apt install -y nodejs
node -v # deve mostrar v20.x.x
rm -rf node_modules package-lock.json
npm install
Inicialize o Prisma (se precisar recomeçar):
npx prisma init
npx prisma migrate dev --name init
No .env deve estar: DATABASE_URL="file:./prisma/dev.db".
Modo dev:
npm run dev
Abra http://localhost:3000.
Build e produção:
npm run build
npm run start
Visualizar banco de dados:
npx prisma studio
{ "type": "system", "payload": { "action": "ls" } }, o exec executará o comando. Isso simula um ataque de desserialização para RSC.