CyberGlossary

Angriffe und Bedrohungen

SQL-Injection

Auch bekannt als: SQLi

Definition

Angriff, der vom Angreifer kontrollierte SQL-Fragmente in Abfragen einschleust, die aus ungeprüften Eingaben gebaut werden, mit der Folge Datendiebstahl, Manipulation oder vollständiger Datenbankübernahme.

SQL-Injection (SQLi) entsteht, wenn eine Anwendung Benutzereingaben ohne saubere Trennung von Code und Daten in SQL-Anweisungen einfügt. Mit Eingaben wie ' OR 1=1-- oder UNION SELECT lassen sich Authentifizierungen umgehen, beliebige Tabellen auslesen, Datensätze ändern oder löschen und bei falsch konfigurierten Datenbanken sogar Systembefehle ausführen. Varianten sind fehlerbasiert, UNION-basiert, blind (boolesch oder zeitbasiert) sowie out-of-band. SQLi ist seit Jahren ein Dauergast in der OWASP Top 10. Die wirksamste Verteidigung sind parametrisierte Abfragen (Prepared Statements) mit Bind-Variablen, ergänzt durch Eingabevalidierung, DB-Konten mit minimalen Rechten, gehärtete ORMs und eine WAF als kompensierende Kontrolle.

Beispiele

  • Ein Login-Formular, in dem username='admin'--' eine Anmeldung ohne Passwort erlaubt.
  • Ein Such-Endpunkt, der über manipuliertes UNION SELECT die Spalte password_hash preisgibt.

Verwandte Begriffe