G 5.168 Umgehung clientseitig umgesetzter Sicherheitsfunktionen von Webanwendungen
Auf Webanwendungen wird gewöhnlich mit generischen Clients ( z. B. Web-Browsern) zugegriffen. Diese können üblicherweise durch den Nutzer konfiguriert und angepasst werden. Sie unterliegen damit nicht der Kontrolle der Webanwendung, sondern sind von einem Angreifer, der sich Zugriff verschafft hat, beliebig manipulierbar. So können clientseitige Sicherheitsfunktionen außer Kraft gesetzt werden. Sind keine zusätzlichen, serverseitigen Schutzmaßnahmen vorgesehen, kann ein Angreifer somit unbefugt auf Ressourcen der Webanwendung zugreifen.
Beispiele:
- Die Eingabevalidierung ist ausschließlich clientseitig in der Programmiersprache JavaScript umgesetzt. Ist die JavaScript-Unterstützung auf dem Client deaktiviert, wird daher die Validierungsfunktion nicht ausgeführt und somit umgangen. Somit können beliebige Eingaben (wie Schadcode) an die Webanwendung gesendet und ungeprüft verarbeitet werden. Ein Angreifer kann dies ausnutzen, um beispielsweise unbefugt Befehle an Hintergrundsysteme der Webanwendung zu übermitteln (z. B. in Form von Datenbankabfragen um eine SQL-Injection auszuführen).
- Die Webanwendung prüft ausschließlich einen clientseitig gesetzten Parameter zur Authentisierung (z. B. admin=true). Ist einem Angreifer dieser Parameter bekannt, so kann er den Parameter manuell setzen und verwenden, um sich ohne Kenntnis der Zugangsdaten an der Webanwendung anzumelden.