Mastodon Mastodon Mastodon Mastodon

SQL-Injection [SQLi]

Aktualisiert: · CyberSecureFox Editorial Team

SQL-Injection (SQLi) ist ein Angriff auf Webanwendungen, bei dem bösartige Eingaben in eine Datenbankabfrage eingeschleust werden, sodass der Angreifer Daten lesen, ändern oder löschen kann.

Wie SQL-Injection funktioniert

Die Lücke entsteht, wenn eine Anwendung eine SQL-Abfrage baut, indem sie Benutzereingaben direkt in den Abfragetext einfügt. Führt ein Login-Formular SELECT * FROM users WHERE name = 'Eingabe' aus, ändert eine Eingabe wie ' OR '1'='1 die Logik der Abfrage.

Varianten:

  • In-Band-SQLi – Ergebnisse erscheinen direkt auf der Seite (fehler- oder UNION-basiert);
  • Blind-SQLi – Daten werden aus Wahr/Falsch-Antworten oder Zeitverzögerungen erschlossen;
  • Out-of-Band-SQLi – Daten werden an einen Server des Angreifers geschickt.

Je nach Datenbank und Rechten reicht SQLi über Datendiebstahl hinaus bis zum Schreiben von Dateien und zur Remote Code Execution. Tools wie sqlmap automatisieren Suche und Ausnutzung.

Warum SQL-Injection gefährlich ist

SQLi gehört zu den ältesten Web-Sicherheitslücken und ist weiterhin Teil der Kategorie „Injection“ in den OWASP Top 10. Sie verursachte große Datenlecks:

  • Der Angriff auf Heartland Payment Systems legte 2008 über 100 Millionen Kartennummern offen.
  • 2023 stahl die Gruppe Cl0p über eine SQL-Injection in MOVEit Transfer (CVE-2023-34362) Daten tausender Organisationen.

So verhindern Sie SQL-Injection

  • Nutzen Sie parametrisierte Abfragen (Prepared Statements) oder ein sicheres ORM – fügen Sie Eingaben nie direkt in SQL ein.
  • Geben Sie dem Datenbankkonto der Anwendung nur die nötigen Rechte.
  • Prüfen Sie Eingaben, zeigen Sie Nutzern keine detaillierten Datenbankfehler und testen Sie Code mit SAST/DAST-Werkzeugen.
  • Eine Web Application Firewall ist eine zusätzliche Schicht, ersetzt aber nicht die Korrektur des Codes.
Synonyme:
SQL Injection, SQL-Einschleusung