Press left mouse button to continue.

Kategorie: Sicherheit

Manipulation einer Webanwendung

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. 😉

Defaultwerte

Ich mag ja Defaultwerte. Eben wieder Zugriff auf ein wichtiges Device erhalten, indem ich die Anmeldung als „root mit dem Kennwort „root“ hinter mich gebracht habe. Ich denke da sollte man den Hersteller fragen ob das Kennwort geaendert werden darf.

Login per Key an Netscreen

Ich mag ja die Authentifizierung per Public-Key. Die Authentifizierung per Key an einem Linux wird ja allendhalben erklaert (siehe auch ssh-Authentifizierung mit Schluessel …) Hier man kurz wie man sich per Key an einer Netscreen-Firewall authentifizieren kann.

Die Netscreen-Devices unterstuetzen SSH in der Version 1 und 2. Wenn Version 1 eingestellt ist, wird der Public-Key als Typ „RSA“ erwartet. Bei Version 2 wird der Key als „DSA“ erwartet. Nachdem also ein Keypaar mit dem (beispielsweise) PuTTY Key Generator erstellt wurde, wird der eigentliche Public-Key Teil auf das Device gebracht. Der generierte Key sieht wie folgt aus:

ssh-dss
AAAAB3NzaC1kc3MAAACAbuKj6CGHOn/Hr+riDblZIUKlyjs7PDR4mvQGqgl8
b9LGCNy3guzPOwThJcXZRkf0LPNR6vrMENSn8rrP7DTsG3xXjaH1Pr6YHj6w
BRX9qiLObmcarTos965zoJJOUtLO0PnT0RooQGrJBxaYjsyl0RPMEsfShejb
9cFVx8zs35UAAAAVALvrcjAJJ/KjfQM7Pl+3HOIbn2SHAAAAgAcHPCaDq8C2
3oKqXRvMxr8aupiV2vdlIHjRqoevPGLnKDLIlFLBVc3TPIPlw8EwRylRMCZt
YFBMpSkk0lju9M8TzTNkNikuYlXTye5KRU9Kkx8DV/wHl1NuTd5xsKMCtiQV
HW1702Uowv9fg2LAbMRZG7uyRA5oHkdFaEE7GAfQAAAAgE51SsIJenlwSCaN
52yDh2EZXoIft7DpjguwvCi7R21gd+Sr+kJqkW0wFq+WO1qgdQ/Hklqj7rcy
ICMyEAN8w42HVd7oGN0/6LNswd8WRNTrM2OLKv3GuKBfZJh9iJfAv+c88/Ak
oobF+jbFLAyL6doJUWzwRLv707U6OuJhyWra
Key comment

Der wichtige Teil, der Public-Key, ist hier fett markiert. Innerhalb der Netscreen-WebGUI kann der Key nun ueber den Punkt SSH_PKA unter Configuration > Admin > Administrators in das Feld Add a New SSH V2 PKA Key des gewuenschten Users eingefuegt werden. Wer, so wie ich, lieber die Console nutzt, kann den Key als User mit R/W-Rechten mit

fw-test-50-1-> set ssh pka-dsa key $KEY

uebergeben. Als Root Administrator angemeldet kann der Key fuer beliebige andere User via

fw-test-50-1-> set ssh pka-dsa user-name $USERNAME key $KEY

eingefuegt werden. Ein abschliessendes save und nachfolgend klappt auch die Anmeldung via Key.

© 2025 Software Failure

Theme von Anders NorénHoch ↑