SQL Injection
SQL-Injection bedeutet, dass Angreifer bösartige SQL-Fragmente in einen Abfragestring einfügen, sodass die Datenbank unerwünschte Befehle ausführt.
Zweck
Angreifer davon abhalten, SQL-Abfragen über Eingaben zu manipulieren und die Datenbank zu stehlen oder zu verfälschen.
Mechanismus
Wird die Benutzereingabe direkt in den SQL-String konkateniert (z. B. "SELECT * WHERE name='"+input+"'"), umgeht die Eingabe ' OR 1=1 -- die Bedingung. Abwehr: parametrisierte Abfragen (Prepared Statements), ORMs, Eingabevalidierung, Least-Privilege-Konten.
Anwendungsfälle
- Login-Umgehung (' OR 1=1)
- Datenleck (UNION SELECT)
- Datenmanipulation (UPDATE/DELETE)
- Befehlsausführung (xp_cmdshell)
Beispiele
- Eingabe
admin' --OutputBypasses password verificationComments out the password condition
Häufige Fehler
- Building SQL with string concatenation
- Always use parameterized queries
Verwandte Begriffe
XSS
XSS (Cross-Site Scripting) ist der Angriff, bei dem ein Angreifer bösartige Skripte in eine Seite einschleust, die im Browser anderer Nutzer ausgeführt werden; es gibt gespeicherte, reflektierte und DOM-basierte Formen. GLOSSAR
CSRF
CSRF (Cross-Site-Request-Forgery) ist eine Schwachstelle, bei der ein Angreifer einen angemeldeten Nutzer dazu verleitet, unwissentlich eine bösartige Anfrage an die Zielseite zu senden. GLOSSAR
SQL
SQL (Structured Query Language) ist die Standard-Abfragesprache relationaler Datenbanken und definiert und manipuliert Daten deklarativ (DDL/DML/DQL/DCL). GLOSSAR