OWASP Top 10 – Teil 3: Injection

Was bedeutet „Injection“?

Eine Injection-Schwachstelle entsteht, wenn ein Angreifer fremden Code einschleusen kann, der dann von der Anwendung ausgeführt wird.

Am bekanntesten ist die SQL-Injection, bei der Angreifer Befehle in eine Datenbank einschleusen. Aber es gibt viele Varianten: z. B. OS Command Injection, LDAP Injection oder NoSQL Injection.

Kurz gesagt: Immer wenn Daten von außen (z. B. aus einem Formular, einer URL oder einer API) nicht sauber geprüft werden und direkt in ein Systembefehl oder eine Datenbankabfrage wandern, besteht Gefahr.

Typische Beispiele aus der Praxis

  • SQL-Injection
    Ein Login-Formular prüft: SELECT * FROM users WHERE username = 'Eingabe' AND password = 'Eingabe' Gibt ein Angreifer statt eines Namens ein: ' OR '1'='1 wird die Abfrage immer „wahr“ – und der Angreifer ist eingeloggt.
  • Command Injection
    Eine Anwendung erlaubt das Hochladen von Dateien und führt im Hintergrund einen Befehl auf dem Betriebssystem aus. Wenn Eingaben nicht gefiltert werden, kann der Angreifer eigene Befehle einschleusen.
  • Cross-Site Scripting (XSS)
    Auch XSS zählt oft zu den Injections: Skripte werden in Webseiten eingeschleust, die dann im Browser anderer Nutzer ausgeführt werden.

Warum ist das so gefährlich?

  • Angreifer können Datenbanken auslesen oder verändern.
  • Oft folgt daraus ein vollständiger Kontrollverlust über die Anwendung.
  • Injection-Schwachstellen sind meist einfach auszunutzen – oft reicht schon ein Browser und ein bisschen Fantasie.

Wie schützt man sich?

  1. Prepared Statements / Parameterized Queries nutzen
    – Niemals Eingaben direkt in SQL-Befehle einfügen.
  2. Eingaben validieren und filtern
    – Nur das erlauben, was wirklich erwartet wird (Whitelist statt Blacklist).
  3. Sicherheitsfunktionen von Frameworks verwenden
    – Viele moderne Frameworks bringen Schutzmechanismen gegen Injection gleich mit.
  4. Minimalprinzip für Datenbankrechte
    – Ein Webserver-User braucht meist keine DROP- oder ALTER-Rechte.
  5. Regelmäßige Tests
    – Manuelle Penetrationstests und automatisierte Scans (z. B. OWASP ZAP, Burp Suite) helfen, Schwachstellen zu finden.

Kommentare

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert