G 5.173 Einbindung von fremden Daten und Schadcode bei Webanwendungen
Werden die Ein- und Ausgabedaten einer Webanwendung nicht ausreichend validiert, so kann ein Angreifer Inhalte, wie z. B. Schadcode zur Manipulation der Webanwendung oder des Clients (z. B. Webbrowser), einbinden. Die eingebundenen Daten werden dem Benutzer im Sicherheitskontext der Webanwendung präsentiert. Demzufolge ist es dem Benutzer der Webanwendung nicht oder nur eingeschränkt möglich, die manipulierten Anteile der Webanwendung zu erkennen. Der Angreifer kann so die Vertrauensstellung des authentisierten Nutzers gegenüber der Webanwendung ausnutzen.
Sowohl die Clients als auch die Server der Webanwendung können durch eingebundenen Schadcode angegriffen werden. So können von einem Angreifer eingebettete Daten beispielsweise Schadcode zur Ausführung auf den Clients (z. B. zum Auslesen von vertraulichen Daten) oder gefälschte Anmelde-Formulare zum Diebstahl von Zugangsdaten beinhalten. Wird der eingebundene Programmcode in der Webanwendung ausgeführt, so kann darüber hinaus das unter der Webanwendung liegende Betriebssystem kompromittiert werden.
Beispiele:
- Über Parameter in der URL können in dynamischen Webseiten fremde Inhalte eingebunden werden, die sich nicht von den Inhalten der Webanwendung unterscheiden lassen (z. B. http://host.tld/index.php?frame=http://angreifer.tld&title=modifizierter Titel). Hierbei wird der übermittelte Parameter title in der zurückgelieferten Webseite der Webanwendung als Titel im HTML -Dokument eingebettet. Ebenso wird der Parameter frame als Quelle für einen Frame auf der Webseite verwendet. Hiermit lassen sich über die Parameterwerte beliebige Inhalte und Programmcode (z. B. JavaScript) in die Webseite einfügen.
- Eine Weiterleitungsfunktion akzeptiert beliebige Werte als Zieladresse. In der Folge kann über einen manipulierten Parameter eine Weiterleitung auf nicht vertrauenswürdige Webseiten durch einen Angreifer veranlasst werden (z. B. http://host.tld/redirect.php?target=http://angreifer.tld). Der Benutzer erwartet aufgrund der Ursprungs-Domäne der Webanwendung die Weiterleitung auf eine vertrauenswürdige Adresse. Dies kann von einem Angreifer ausgenutzt werden, um über die Weiterleitung auf eine gefälschte Anmeldeseite zur Eingabe der Zugangsdaten einen Phishing-Angriff zu realisieren.
- In Webanwendungen können fremde Inhalte von Partnern (z. B. Werbeanzeigen in einem iFrame) eingebunden werden. Die Kontrolle über diese Inhalte liegt üblicherweise beim Partner und nicht beim Betreiber der Webanwendung. Werden Schadsoftware oder unerwünschte Inhalte über den Partner eingebunden, so kann dies den Ruf des Webanwendungs-Betreibers schädigen, da die Inhalte dem Benutzer im Kontext der Webanwendung dargestellt werden. Darüber hinaus können die Clients der Besucher von der Schadsoftware infiziert und somit kompromittiert werden.
- Über eine Upload-Funktion der Webanwendung lassen sich beliebige Dateien in der Verzeichnisstruktur auf dem Server speichern. Dadurch können gegebenenfalls schadhafte Skripte zur Ausführung auf der Webanwendung gespeichert oder bestehende Dateien (z. B. Konfigurationsdateien) überschrieben werden. Der Upload von großen Mengen an Daten kann auch zu einer Verhinderung des Dienstes führen.