Ich liebe, ich nenne es jetzt mal so, Hacking. Die letzten Tage wurde ich gebeten mir noch einmal eine Webanwendung anzuschauen, in der bereits von mir und im Rahmen eines Tests Probleme identifiziert wurden. Ein Problem war unter anderem, dass uebertragene Werte von der Backendanwendung nicht validiert wurden. Kleines Beispiel.
Gehen wir davon aus, dass die genannte Anwendung fuer Autoverkauefer ist, in denen er Fahrzeugtyp, Sonderausstattungsmerkmale und ggf. Rabatte auswaehlen kann. Die Rabattstufen wurden vorgegeben (5%, 10%, 15%) und konnten vom Verkaeufer im Rahmen der Vertragserstellung ausgewaehlt werden (type=“checkbox“). Hat der Verkaeufer nun einen Rabatt von 10% ausgewaehlt wurden der Anwendung unter anderem zwei Werte uebergeben. Zum einen der Wert „Rabattauswahl1“ mit „J“ (fuer Ja, also ausgewaehlt) und „Rabatt1“ mit dem Wert „10“. Wie oben angedeutet war das Problem nun, dass im Backend die Rueckgabewerte nicht validiert wurden. So war es moeglich den Wert fuer „Rabatt10“ zu manipulieren. Ich Detail laeuft das wie folgt ab.
Rabatt in der Anwendung auswaehlen (wir nehmen mal 10%) und dann im Browser die Seite abschicken. Nun faengt man die Seite ab, sie geht also noch nicht Richtung Server, manipuliert seine Werte (machen wir aus der 10 in Rabatt10 einfach mal 70) und uebergibt die Seite *dann* erst an den Server. Und schon hat man nicht 10% sondern 70% Rabatt, da die Anwendung eben nicht prueft ob der Rueckgabewert korrekt ist.
Fuer das Aendern der Daten nutze ich Tamper Data. Das Plugin haengt sich in den Browser und bietet die Moeglichkeit den abgeschickten Datenstrom abzufangen und zu optimieren.
Gut, das genannten Problem wurde behoben, so dass es mir nicht moeglich war einen ordentlichen Rabatt zu gewaehren. Da ich aber nicht kampflos aufgeben wollte habe ich etwas anderes versucht. In dem von mir getesteten Fall konnte ich aus 5 Rabatten auswaehlen. Was passiert nun, dachte ich bei mir, wenn ich zu den Feldern Rabattauswahl1 bis Rabattauswahl5 noch ein Feld Rabattauswahl6 mit den dazugehorigen Feldern anlege? Ja, was soll ich sagen? Die Anwendung hat zwar alle urspruenglich an den Browser gelieferten Werte auf Korrektheit validiert, hat aber meinen neuen Wert ungeprueft uebernommen, so dass ich mir doch 70% Rabatt gewaehren konnte. 🙂 Das Resultat war, dass ich eine Menge Spass hatte, wohingegen der betroffene Fachbereich natuerlich wieder maessig erfreut war. 😉
1 Kommentar