Bei der “Grab Bag 400) – Challenge wird uns ein Webserver genannt und folgende Frage gestellt:
“What is Jeff Moss’ checking account balance?”
Wir sollen demnach den Kontostand von “Jeff Moss”, dem Defcon-Gründer, in Erfahrung bringen. Zuerst besuchen wir also die Webseite und verschaffen uns einen Überblick.
Es handelt sich um die Webseite der “Bank of America”, die uns unter der Domain “boabank.com” vorgestellt wird. Nach einem kurzen Überfliegen der Links (von denen es nicht viele gibt), sticht schon das Suchfeld im rechten Bereich der Webseite ins Auge.
Hier kann man nach BoaBank-Filialen in seiner Nähe durch Eingabe der Postleitzahl suchen. Bereits die Eingabe einer Zeichenkette, die nicht aus Zahlen besteht, führt schon zu der Fehlermeldung:
“ERROR: column … does not exist Position: 55”
Dabei handelt es sich um eine Fehlermeldung des Datenbanksystems PostgreSQL. Dass der Fehler ohne die Eingabe von (einfachen oder doppelten) Anführungszeichen ausgelöst wird, lässt vermuten, dass der Wert der Postleitzahl ebenfalls ohne Anführungszeichen direkt an die Datenbank-Abfrage weitergegeben wird. Eine mögliche Anfrage könnte daher wie folgt aussehen:
SELECT ... FROM ... WHERE zip = $_POST['zip'];
Um diese Vermutung zu überprüfen und beispielsweise alle Filialen beliebiger Postleitzahl auszugeben, trage ich in das Suchfeld “1234 OR 1=1” ein, und erhalte folgendes Ergebnis:
Continue reading