Skip to content

Bei diesen Schwachstellen handelt es sich um Schwachstellen im Design und der Implementierung. Dadurch ist es einem Angreifer möglich ungewollte Aktionen auszuführen.

Vertrauen in die Client Kontrollen

Das vertrauen, dass Daten nur über das webinterface gemacht werden können führt zu der Annahme, dass Client Side Validierung reicht. Ein Angreifer kann sich aber einfach mit einem Attack Proxy wie Burp zwischenschalten und die Eingaben ändern.

Fehlerhafte Behandlung von ungewöhnlichen Werten

Falls nur die Business Logik abgewägt wurde und vergessen wurde ungewöhnliche Fälle zu berücksichtigen, welche zwar im normalen Betrieb nicht auftreten, aber von einem Angreifer ausgenutzt werden können kann es zu ungewöhnlichem Verhalten führen.

[!Beispiel] Beispiel Die Überweisung von -100 Euro wird von einem normalen Nutzer nicht durchgeführt. Ein Angreifer kann dies benutzen um sich Geld von anderen Konten zu holen.

Um diese Schwachstellen zu finden müssen die folgenden drei Fragen beantwortet werden: - Gibt es irgendwelche Limits für die Daten? - Was passiert, wenn diese Limits erreicht werden? - Gibt es irgendeine Transformation oder Normalisierung der Eingabe? Auch kann es passieren, dass eine Anmeldung mit einer bestimmten Endung enden soll beispielsweise der Firmen Mail, der Angreifer die Mail aber dennoch erhalten will. In diesem Fall ist es möglich einen String Overflow auszunutzen und den usernamen, so lang machen, dass die Mail am Ende abgeschnitten wird. Beispielsweise der Angreifer hat die Domain company.attacker. Dann kann er den hinteren Teil abschneiden, sodass nur noch die company da ist.

Fehlerhafte Annahmen über Nutzer Verhalten

Es kann passieren, dass Nutzer nach der Anmeldung als vertrauenswürdig angesehen werden und deshalb keine weiteren Sicherheitsmaßnahmen angewendet werden. Beispielsweise das ändern der Mail Adresse, ohne diese zu verifizieren.

Fehlen von benötigten eingaben

Es kann auch vorkommen, dass durch das fehlen oder das hinzufügen von User Eingaben bestimmte Codeteile ausgeführt werden, die nicht beabsichtigt waren. Um diese zu finden sollten die folgenden Schritte durchgeführt werden: - Es sollte nur ein Parameter für jeden Versuch entfernt werden, um das Ergebnis nicht zu verfälschen - Der Name als auch der Wert sollten entfernt werden. Beide Fälle werden oftmals unterschiedlich gehandhabt. - Sollte ein Prozess über mehrere Phasen gehen, sollte diesem gefolgt werden. Das ändern eines vorherigen Schrittes kann Auswirkungen auf die nachfolgenden haben. Dies kann sowohl auf GET als auch auf POST Parameter angewendet werden. Zudem sollten die Cookies auch überprüft werden.

Nicht befolgen der Prozess Sequenz

Die Entwickler denken sich einen bestimmten Prozess aus, den der Nutzer befolgen soll. Das Problem ist, dass der Nutzer diesen Prozess verändern kann. Beispielsweise kann bei einem Login Prozess einfach der Schritt für die Zwei Faktor Authentifizierung übersprungen werden. Um diese Schwachstellen zu finden hilft es auch diese Sequenz weiter zu verändern indem vor und zurück gesprungen wird oder auch ein Schritt mehrmals wiederholt wird. Es kann auch sein, dass auf Schritte zugegriffen werden kann, wenn mehrere Parameter zu der gleichen URL geschickt werden. Auch kann es sein, dass ein Rabatt auf Artikel angewandt wird und dann Artikel entfernt werden und der Rabatt unverändert gleich bleibt. Daher sollte gut darauf geachtet werden, was mit Preisen passiert, wenn User Aktionen anpassungen vornehmen.

Encryption oracle

Wird eine Eingabe verschlüsselt und diese dem Nutzer zur Verfügung gestellt, wird dies als encryption oracle bezeichnet. Dies kann gefährlich werden, wenn es andere Nutzer kontrollierbare Eingaben gibt die den gleichen Verschlüsselungsalgorithmus erwarten. In diesem Fall kann ein Angreifer das Encryption Oracle nutzen um validen ciphertext zu erzeugen. Dies spart einem Angreifer zeit seinen eigenen infizierten exploit zu erzeugen ist aber nicht unbedingt nötig. Die Kritikalität eines Encryption Oracles hängt davon ab,welche Funktionalität den gleichen Algorithmus nutzt.

6ChT6ywZx1VAakvuM8X4S9hRTcsD9hPXf16JV4qUFHNX2GYFWLZW18A%2fgbj4zkb9Hti8Hb43y7y0KWzF5Zq%2bjbxi1Z742OulpE3kJ5fOqeA%3d

Hti8Hb43y7y0KWzF5Zq%2bjbxi1Z742OulpE3kJ5fOqeA6ChT6ywZx1VAakvuM8X4SxbZap4fX0EulvA0JWHXTOm4uKI6UcciFzPa%2bxIrv48VA5TJo3XyPk4dzxxTCJiAsw%3d%3d