SQL Injection
Was ist SQL Injection?
SQL Injection (SQLi) ist eine kritische Web-Sicherheitsschwachstelle, bei der schädlicher SQL-Code in Eingabefelder oder URLs eingebracht wird, um unautorisiert auf Datenbanken zuzugreifen, Daten zu manipulieren oder Authentifizierungen zu umgehen.
SQLi entsteht durch unsichere Verarbeitung von Benutzereingaben – typischerweise durch String-Konkatenation in SQL-Statements. Angreifer können über gezielte Eingaben – z. B. OR 1=1;--
– vollständige Tabelleninhalte extrahieren, Datensätze löschen oder Admin-Rechte erlangen.
Wichtige SQL-Injection-Ressourcen
-
SQLi-Typen:
→ Error-based, Union-based, Time-based blind – je nach Antwortverhalten der Anwendung. -
Prepared Statements & Stored Procedures
→ Parametrisierte Abfragen verhindern das Einschleusen manipulativer SQL-Befehle. -
ORM-Frameworks (z. B. Hibernate, Entity Framework)
→ Objektorientierte Abstraktion schützt vor direkten SQL-Manipulationen. -
DAST-Tools (z. B. SQLMap, Burp Suite)
→ Automatisierte dynamische Tests zur Identifikation und Ausnutzung potenzieller Lücken. -
IDS/Logging
→ Intrusion Detection Systeme und Logging helfen, verdächtige Datenbankzugriffe zu erkennen.
Anwendung in der Praxis
-
Login-Bypass: Über manipulierte Eingaben können Authentifizierungsmechanismen umgangen werden.
-
Datendiebstahl: SELECT-Statements werden erweitert, um sensible Informationen wie Passwörter auszulesen.
-
Datenmanipulation: Angreifer können INSERT, UPDATE oder DELETE ausführen.
-
Rechteausweitung: Zugriffe auf administrative Funktionen durch Eskalation via SQLi.
-
Schwachstellenanalyse: Security-Scans und Code-Reviews identifizieren gefährliche Query-Strukturen.
Verwandte Begriffe
-
DAST
-
Secure Coding
-
OWASP Top 10
-
Logging
Beispiel aus der Praxis
In einem Online-Bestellformular ist das Feld „Kundennummer“ direkt in eine SQL-Abfrage eingebunden. Ein Angreifer gibt als Input
105 OR 1=1--
ein. Die Anwendung gibt daraufhin nicht nur die Daten des Kunden mit ID 105, sondern alle Kunden zurück. Nach der Entdeckung durch einen DAST-Scan mit SQLMap führt das Entwicklungsteam parametrisierte Queries ein, ergänzt Logging und aktiviert Alerts im IDS-System bei auffälligen SQL-Mustern.