
Absichtlich verwundbare Next.js-Anwendung, die die Authentifizierungsumgehung CVE-2025-29927 durch Middleware-WAF-Umgehung demonstriert. Entwickelt für Sicherheitsforschung, Penetrationstest-Labore und verantwortungsvolle Offenlegungsdemos mit MySQL-Backend und JWT-Authentifizierung.
Dies ist eine verwundbare Next.js-Anwendung, die CVE-2025-29927 demonstriert, eine Sicherheitslücke, die in Webanwendungen identifiziert wurde, die Next.js mit unsachgemäßer Eingabeverarbeitung oder Zugriffskontrollfehlern verwenden.
Das Projekt verwendet einen MySQL-Backend und JWT Authenticaion und ist nur für Bildungs- und Testzwecke konzipiert – wie etwa für Penetrationstest-Labore, verantwortungsvolle Offenlegungsdemos und Sicherheitsforschung.
Die Passwörter für die Testkonten in users.csv lauten "123456" und der geheime Schlüssel für JWT Authenticaion "JWT_SECRET" wurde der Datei ".env.local" hinzugefügt und absichtlich in diesem öffentlichen Repository geteilt und wird nicht in der Produktion verwendet.
Sie können den geheimen Schlüssel für den JWT auch durch einen selbst generierten ersetzen, aber die .env-Datei muss existieren, damit die JWT authenticaion funktioniert.
⚠️ Haftungsausschluss: Dieses Projekt ist absichtlich verwundbar. Stellen Sie es NICHT in Produktionsumgebungen bereit. Verwenden Sie es nur in isolierten oder kontrollierten Umgebungen zu Bildungszwecken.
Sehen Sie sich die vollständige Einrichtungs- und Demo-Anleitung auf YouTube an, wie Sie dieses Projekt einrichten:
▶️ [https://www.youtube.com/watch?v=Akb3R34QnM8&t=482s]
Sehen Sie sich die vollständige Demo auf YouTube an, wie die Verwundbarkeit ausgenutzt wird: ▶️ []
git clone https://github.com/enochgitgamefied/NextJS-CVE-2025-29927.git
cd NextJS-CVE-2025-29927
npm install
Erstellen Sie eine MySQL-Datenbank und aktualisieren Sie die Verbindungsdetails in:
/database/index.js
Die einfachste Einrichtung wäre die Verwendung der in diesem Repository bereitgestellten csv-Dateien, um die Tabellen zu erstellen. Die verwendeten Benutzerkonten haben alle dasselbe Passwort. Das Passwort lautet "123456". Sehen Sie sich das YouTube-Video an, um die vollständigen Details und Schritt-für-Schritt-Anleitungen zu erhalten.
Sie können auch etwas wie das folgende Beispiel verwenden. Beispiel:
const pool = mysql.createPool({
host: 'localhost',
user: 'root',
password: 'yourpassword',
database: 'cve_demo'
});
Importieren Sie dann das Schema aus database/schema.sql oder führen Sie Ihr eigenes Einrichtungsskript aus.
npm run dev
Besuchen Sie http://localhost:3000, um die App in Ihrem Browser anzuzeigen.
Diese Anwendung enthält NextJS-Middleware, die als WAF (Web Application Firewall) fungiert, sowie eine verwundbare Version von next 13.4.9, die es Angreifern ermöglicht, Schwachstellen im Zusammenhang mit Authentifizierungsumgehung, lokalem Dateieinschluss oder unsachgemäßer Zugriffskontrolle auszunutzen. Ziel ist es, Forschern zu helfen, zu verstehen, wie diese CVE ausgenutzt werden kann und wie sie gemildert werden kann.
Dieses Projekt ist unter der MIT-Lizenz lizenziert.