Zum Inhalt springen

SQL Injection

aus Wikipedia, der freien Enzyklopädie
Dies ist eine alte Version dieser Seite, zuletzt bearbeitet am 26. Mai 2004 um 20:44 Uhr durch Fabian Bieker (Diskussion | Beiträge) (Neu). Sie kann sich erheblich von der aktuellen Version unterscheiden.
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)

Definition

SQL Injection bezeichnet das Ausnutzen einer Computersicherheits-Lücke. Der Angreifer versucht SQL Abfragen zu manipulieren. Hierzu wird über die Applikation, die den Zugriff auf die Datenbank bereitstellt, SQL Statments einzufügen.

Oft zu finden sind SQL Injection Lücken in CGI Scripten, aber auch Programme die andere Daten, etwa Webseiteninhalte oder E-Mails sind anfällig.

SQL Injection Bugs treten auf, wenn eine Applikation SQL Abfragen an den Server weiterreicht, ohne benutzerveränderbare Parameter zu escapen. So sollten z.B. die Zeichen '  ; " durch \' \; \" ersetzt werden.

Beispiel

Auf einem Webserver findet sich ein Script zum Anzeigen von Artikeln:

http://webserver/cgi-bin/find.cgi?ID=42

Dieses Script führt folgende SQL Abfrage aus:

SELECT text FROM  WHERE artikel ID=42

Ruft nun ein Angreifer folgende URL ab

http://webserver/find.cgi?ID=42;UPDATE%20USER%20SET%20TYPE="admin"%20WHERE%20ID=23

Führt das Script zwei Anweisungen aus:

SELECT text FROM artikel WHERE  ID=42; UPDATE user set type="admin" where id=23