Bundesamt für Sicherheit in der Informationstechnik

G 5.131 SQL-Injection

Greift eine Anwendung auf die Daten einer SQL -Datenbank zu, so werden Befehle in Form von SQL-Anweisungen an die Datenbank übermittelt. Ist die Anwendung anfällig für SQL-Injection, kann ein Angreifer durch Manipulation der Eingabedaten geänderte oder zusätzliche SQL-Anweisungen injizieren, die von der Anwendung an die Datenbank weitergeleitet und dort bearbeitet werden. Auf diese Weise können wie bei einem direkten Datenbankzugriff beliebige SQL-Anweisungen ausgeführt werden und so Sicherheitsmechanismen der Anwendung beim Datenzugriff umgangen werden.

Eine SQL-Injection kann daher z. B. die folgenden Auswirkungen haben:

  • unberechtigter Zugriff auf Daten,
  • Erzeugen, Auslesen, Verändern oder Löschen von Daten,
  • Ausführen von Betriebssystembefehlen,
  • Kontrolle über die Datenbank,
  • Zugriff auf weitere Server (z. B. HTTP -Get-Request oder DNS-Abfrage).

Das Einschleusen der SQL-Anweisung wird dabei durch eine unzureichende Validierung von Eingabedaten innerhalb der Anwendung ermöglicht, die in dieser Form direkt in eine dynamische Datenbankabfrage eingebaut werden (siehe auch G 4.84 Unzureichende Validierung von Ein- und Ausgabedaten bei Webanwendungen und Web-Services ).

Die SQL-Injection ist ein spezieller Injection-Angriff (siehe G 5.174 Injection-Angriffe ), der sich ausschließlich gegen SQL-Datenbanken richtet. So ist das grundsätzliche Vorgehen zum Einschleusen von Befehlen auch bei anderen Interpretern möglich (z. B. LDAP -Injection, XML -Injection).

Stand: 13. EL Stand 2013

Hinweis zur Verwendung von Cookies

Um unsere Webseite für Sie optimal zu gestalten und fortlaufend verbessern zu können, verwenden wir Cookies. Durch die weitere Nutzung der Webseite stimmen Sie der Verwendung von Cookies zu. Weitere Informationen hierzu erhalten Sie in unserer Datenschutzerklärung.

OK