
Scanner para detectar a presença de CVE-2025-55182 & CVE-2025-66478 em serviços web alvo.
Um scanner seguro e não invasivo para detectar vulnerabilidades de Execução Remota de Código em React Server Components (RSC) e Next.js (CVE-2025-55182 & CVE-2025-66478).
Este scanner ajuda organizações a identificar se seus serviços web são vulneráveis à vulnerabilidade React2Shell, que afeta aplicações que utilizam React Server Components e Next.js. A vulnerabilidade permite que atacantes executem código remotamente através de dados de formulário multipart especialmente criados.
Importante: Este scanner utiliza apenas métodos seguros de detecção por canal lateral e não executa código nos sistemas alvo.
Método de Detecção Seguro
Opções Flexíveis de Varredura
/_next, /api)Opções de Saída
pip install -r requirements.txt
Ou instale manualmente:
pip install requests tqdm urllib3
Varrer uma única URL:
python scanner.py -u https://example.com
Varrer múltiplos hosts a partir de um arquivo:
python scanner.py -l hosts.txt
Varrer com caminhos personalizados:
python scanner.py -u https://example.com --path /_next --path /api
Varrer com caminhos a partir de arquivo:
python scanner.py -u https://example.com --path-file paths.txt
Cabeçalhos personalizados:
python scanner.py -u https://example.com -H "Authorization: Bearer token" -H "X-Custom: value"
Varredura multi-thread:
python scanner.py -l hosts.txt -t 20
Exportar resultados para JSON:
python scanner.py -l hosts.txt -o results.json
Exportar todos os resultados (incluindo não vulneráveis):
python scanner.py -l hosts.txt -o results.json --all-results
Modo detalhado (mostrar detalhes para todos os hosts):
python scanner.py -l hosts.txt -v
Modo silencioso (mostrar apenas hosts vulneráveis):
python scanner.py -l hosts.txt -q
Desabilitar cores:
python scanner.py -l hosts.txt --no-color
Um host por linha. Linhas iniciadas com # são ignoradas.
https://example.com
http://test.example.org
another-site.com
# This is a comment
Um caminho por linha. Caminhos serão automaticamente prefixados com / se não estiverem presentes.
/_next
/api
/actions
# Comment lines are ignored
O scanner utiliza um método de detecção não invasivo que:
Mensagens de Erro JavaScript
SyntaxError - Indica análise JSON inadequada dos dados do formulárioUnexpected token - Sugere desserialização RSC vulnerávelReferenceError / TypeError - Revela acesso inseguro a propriedades de objetoRespostas de Erro Específicas do RSC
text/x-componentVary: RSC, Next-Router-State-Tree){"digest":"..."})$@, objetos de erro)O scanner detecta tanto mensagens de erro detalhadas (versões antigas) quanto respostas de erro RSC estruturadas (versões novas), garantindo cobertura abrangente em diferentes implementações do Next.js.
Importante: Este método NÃO executa nenhum código no sistema alvo. Ele apenas detecta se o sistema está vulnerável observando as respostas de erro.
python scanner.py -u https://myapp.com
# Crie um arquivo de hosts com todos os seus domínios
python scanner.py -l organization-hosts.txt -t 20 -o scan-results.json
# Crie paths.txt com endpoints comuns do Next.js
python scanner.py -l hosts.txt --path-file paths.txt -o results.json
python scanner.py -u https://myapp.com -H "Cookie: session=abc123" -H "Authorization: Bearer token"
O scanner marcará um host como VULNERÁVEL se detectar:
Quando o scanner detecta uma vulnerabilidade, significa que:
0: Nenhuma vulnerabilidade encontrada1: Uma ou mais vulnerabilidades detectadas-t) para evitar sobrecarregar os alvosSe sua aplicação for encontrada vulnerável:
Ações Imediatas:
Segurança a Longo Prazo:
Referências:
Esta ferramenta é apenas para testes de segurança autorizados. O acesso não autorizado a sistemas de computador é ilegal. Os autores não são responsáveis pelo uso indevido ou danos causados por este programa.
| Opção | Descrição |
|---|
-u, --url URL | URL única para varrer |
-l, --list FILE | Arquivo contendo lista de hosts para varrer |
-t, --threads N | Número de threads concorrentes (padrão: 10) |
--timeout N | Tempo limite de requisição em segundos (padrão: 10) |
-o, --output FILE | Arquivo de saída para resultados (formato JSON) |
--all-results | Salvar todos os resultados, não apenas hosts vulneráveis |
-k, --insecure | Desabilitar verificação de certificado SSL |
-H, --header HEADER | Cabeçalho personalizado (pode ser usado várias vezes) |
-v, --verbose | Saída detalhada (mostrar detalhes para todos os hosts) |
-q, --quiet | Modo silencioso (mostrar apenas hosts vulneráveis) |
--no-color | Desabilitar saída colorida |
--path PATH | Caminho personalizado para testar (pode ser usado várias vezes) |
--path-file FILE | Arquivo contendo lista de caminhos para testar |