Skip to content
Vol. 1 · Ed. 2026
CyberGlossary
Entry № 1207

SQL Injection

Geprüft vonCybersecurity entrepreneur & security researcher

Was ist SQL Injection?

SQL InjectionCode-Injection-Angriff, der vom Angreifer kontrolliertes SQL in eine Datenbankabfrage einschleust, um Daten zu lesen, zu verändern oder zu zerstören.


SQL Injection (SQLi) nutzt Anwendungen aus, die nicht vertrauenswürdige Eingaben in SQL-Anweisungen verketten, statt parametrisierte Abfragen zu verwenden. Durch das Einschleusen von Anführungszeichen, Kommentaren oder UNION-Klauseln schreibt ein Angreifer die beabsichtigte Abfrage um, um Tabellen auszulesen, die Authentifizierung zu umgehen, Privilegien zu erweitern oder Datenbankbefehle auszuführen. Zu den Varianten zählen klassische In-Band-, fehlerbasierte, blinde boolesche/zeitbasierte (die Daten Bit für Bit aus Antworten oder Antwortverzögerungen ableiten) und Second-Order-Injektionen, bei denen gespeicherte Eingaben auslösen, wenn sie später wiederverwendet werden.

SQLi ist Jahrzehnte alt und dennoch weiterhin verheerend. CVE-2023-34362, eine Zero-Day-SQL-Injection in Progress MOVEit Transfer, wurde ab Ende Mai 2023 von der Ransomware-Gruppe Cl0p ausgenutzt: Nicht authentifizierte Angreifer injizierten SQL, um die LEMURLOOT-Web-Shell auszubringen und Datenbankinhalte zu exfiltrieren, was sich kaskadenartig auf Tausende nachgelagerte Organisationen auswirkte. Die TalkTalk-Datenpanne von 2015, bei der rund 157.000 Kundendatensätze offengelegt wurden, war ebenfalls eine SQL-Injection gegen eine veraltete Webseite. SQLi fällt unter OWASP Top 10 A03:2021 (Injection).

Die primäre Verteidigung sind parametrisierte Abfragen / Prepared Statements, die Code von Daten trennen, sodass Eingaben die Abfragestruktur niemals verändern können. Ergänzen Sie dies durch sicher eingesetzte ORM-Frameworks, Allow-List-Eingabevalidierung, Datenbankkonten mit minimalen Rechten (keine DBA-Rechte für Anwendungs-Logins), Hygiene bei Stored Procedures und eine WAF als Defence-in-Depth. Manuelles Escaping allein ist fragil und wird nicht empfohlen.

flowchart TD
  U[Nicht vertrauenswürdige Eingabe] --> C{Wie wird die Abfrage gebaut?}
  C -->|String-Verkettung| I["' OR 1=1 -- in SQL injiziert"]
  I --> DB[(Datenbank führt Angreifer-SQL aus)]
  DB --> X[Daten-Dump / Authentifizierungs-Bypass]
  C -->|Parametrisierte Abfrage| S[Eingabe als Daten gebunden, nicht als Code]
  S --> OK[Abfragestruktur erhalten — sicher]

Beispiele

  1. 01

    Ein Login-Formular, in dem die Eingabe ' OR '1'='1 die erste Benutzerzeile zurückgibt und die Authentifizierung umgeht.

  2. 02

    Ein Reporting-Endpunkt, bei dem ein präparierter Parameter ein UNION SELECT auslöst, um Passwort-Hashes zu extrahieren.

Häufige Fragen

Was ist SQL Injection?

Code-Injection-Angriff, der vom Angreifer kontrolliertes SQL in eine Datenbankabfrage einschleust, um Daten zu lesen, zu verändern oder zu zerstören. Es gehört zur Kategorie Angriffe und Bedrohungen der Cybersicherheit.

Was bedeutet SQL Injection?

Code-Injection-Angriff, der vom Angreifer kontrolliertes SQL in eine Datenbankabfrage einschleust, um Daten zu lesen, zu verändern oder zu zerstören.

Wie schützt man sich gegen SQL Injection?

Schutzmaßnahmen gegen SQL Injection kombinieren typischerweise technische Kontrollen und operative Praktiken, wie in der Definition oben beschrieben.

Welche anderen Bezeichnungen gibt es für SQL Injection?

Übliche alternative Bezeichnungen: SQLi.

Verwandte Begriffe

Siehe auch