next up previous contents
Next: Bibliography Up: SQL-Injection Previous: SQL-Injection   Contents

Beispiele

Angenommen die Web-Anwendung ist ein Frontend für eine Benutzerdatenbank. Eine Suchanfrage dieser Art

http://schmoop.com/search.php?name=Skywalker

würde dann in eine SQL-Anweisung wie diese übergehen:

SELECT * FROM users WHERE name='$name'

Durch eine Manipulation dieser Art:

http://schmoop.com/search.php?name=egal'%20OR%201=1 
(Die Leerzeichen sind hier durch den Hex-Wert %20 kodiert, damit die URL funktioniert.)

entsteht dann eine solche SQL-Anfrage:

SELECT * FROM users WHERE name='egal' OR 1=1

Der Name als Suchkriterium ist damit hinfällig und es werden alle Benutzer ausgegeben, da OR 1=1 die Bedingung immer erfüllt.

Interessant wird das bei Passwortabfragen. Man stelle sich folgende manipulierte SQL-Anweisung vor:

SELECT COUNT(*) FROM users WHERE name='Skywalker' AND password='Luke' OR 1=1

Access granted!



Stephan Uhlmann 2003-09-01