Zum Inhalt springen
uencoder

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' --
    Output
    Bypasses password verification

    Comments out the password condition

Häufige Fehler

Building SQL with string concatenation
Always use parameterized queries

Verwandte Begriffe

Verwandte Tools

References