Arten von SQL-Injection

SQL-Injection ist eine Angriffstechnik, bei der bösartiger SQL-Code in Eingabefelder oder Parameter eingefügt wird, um Datenbanken zu manipulieren oder unbefugten Zugriff zu erlangen. Im Folgenden sind die wichtigsten Arten aufgelistet:

Klassische SQL-Injection

Angreifer fügen schädlichen SQL-Code in Eingabefelder wie Formulare oder URL-Parameter ein.

Beispiel: Eingabe wie ' OR '1'='1 in einem Login-Feld, um die Authentifizierung zu umgehen.

Blinde SQL-Injection

Der Angreifer erhält keine direkten Fehler- oder Datenbankmeldungen, sondern schließt auf Basis der Anwendungsreaktionen (z. B. Verzögerungen oder unterschiedliche Antworten) auf die Datenbankstruktur.

Unterarten:

Union-basierte SQL-Injection

Nutzt den SQL UNION-Operator, um Daten aus anderen Tabellen abzufragen, die nicht direkt mit der ursprünglichen Abfrage verbunden sind.

Beispiel: SELECT name FROM users WHERE id=1 UNION SELECT password FROM admin.

Fehlerbasierte SQL-Injection

Der Angreifer löst absichtlich Datenbankfehler aus, um Informationen über die Datenbankstruktur (z. B. Tabellen- oder Spaltennamen) zu erhalten.

Beispiel: Eingabe von ungültigem SQL-Code wie 1' AND 1=CONVERT(int,@@version)--.

Out-of-Band SQL-Injection

Daten werden über einen separaten Kanal (z. B. DNS-Anfragen oder HTTP-Anfragen) aus der Datenbank extrahiert, wenn direkte Antworten nicht möglich sind.

Beispiel: Nutzung von Funktionen wie UTL_HTTP in Oracle, um Daten an einen externen Server zu senden.

Abgeleitete SQL-Injection

Ähnlich wie blinde SQL-Injection, aber der Angreifer nutzt indirekte Methoden, um Informationen zu sammeln, ohne direkte Datenbankantworten zu sehen.

Präventive Maßnahmen