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!