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
NoSQL-Injection
Injection-Angriff gegen Dokument-, Key-Value- oder Graphdatenbanken, bei dem Angreifer Operatoren oder JavaScript in Abfrageobjekte einschleusen.
Command Injection
Command Injection — definition coming soon.
Parameterized Query
Parameterized Query — definition coming soon.
Input Validation
Input Validation — definition coming soon.
OWASP Top 10
OWASP Top 10 — definition coming soon.
Web Application Firewall (WAF)
Ein Reverse-Proxy-Filter, der HTTP/HTTPS-Verkehr inspiziert, um Web-Angriffe wie SQL-Injection, XSS und Bot-Missbrauch zu blockieren, bevor sie die Anwendung erreichen.