NoSQL Injection
Was ist NoSQL Injection?
NoSQL InjectionInjection-Angriff, der Operatoren, JSON oder das Abfrage-DSL einer NoSQL-Datenbank manipuliert, um Logik zu umgehen oder Daten zu extrahieren.
NoSQL Injection nutzt Anwendungen aus, die Abfragen für Dokument- oder Key-Value-Speicher (etwa MongoDB, CouchDB, Elasticsearch) aus nicht vertrauenswürdiger Eingabe zusammensetzen. Statt SQL-Syntax einzuschleusen, manipuliert der Angreifer die JSON-Struktur, Operatoren wie $ne oder $gt oder Fragmente der Abfragesprache, um sich ohne Zugangsdaten anzumelden, beliebige Dokumente zurückzugeben oder server-seitiges JavaScript auszuführen, falls die Engine das unterstützt. Blinde Varianten leaken Daten über boolesches oder zeitbasiertes Verhalten. Gegenmaßnahmen sind strikte Schemavalidierung, Typumwandlung der Eingaben in erwartete Primitivtypen, Ablehnung von Objekt-Payloads an Stellen, an denen Strings erwartet werden, der Einsatz von Query-Buildern mit expliziten Operatoren und das Prinzip minimaler Rechte für Datenbankkonten.
● Beispiele
- 01
Senden von {"username": "admin", "password": {"$ne": null}} an einen MongoDB-Login, der Passwort-Hashes mit einem String vergleicht.
- 02
Einschleusen eines JavaScript-Ausdrucks in eine $where-Klausel, um Dokumente aus einem verwundbaren Endpunkt zu enumerieren.
● Häufige Fragen
Was ist NoSQL Injection?
Injection-Angriff, der Operatoren, JSON oder das Abfrage-DSL einer NoSQL-Datenbank manipuliert, um Logik zu umgehen oder Daten zu extrahieren. Es gehört zur Kategorie Angriffe und Bedrohungen der Cybersicherheit.
Was bedeutet NoSQL Injection?
Injection-Angriff, der Operatoren, JSON oder das Abfrage-DSL einer NoSQL-Datenbank manipuliert, um Logik zu umgehen oder Daten zu extrahieren.
Wie schützt man sich gegen NoSQL Injection?
Schutzmaßnahmen gegen NoSQL Injection kombinieren typischerweise technische Kontrollen und operative Praktiken, wie in der Definition oben beschrieben.
Welche anderen Bezeichnungen gibt es für NoSQL Injection?
Übliche alternative Bezeichnungen: NoSQLi.