Categories: Software

Zehn häufige Sicherheitslücken bei Web-basierten Anwendungen

In Webformularen finden sich häufig Felder, bei denen die eingegebenen Daten nicht validiert werden. Dies ist ein gefundenes Fressen für Angreifer, die Buffer-Overflows oder SQL Injection einsetzen wollen. Zum Testen kann man im Texteditor einfach einen Text mit mehr als 500 Zeichen erstellen, diesen dann ausschneiden und in das Passwortfeld kopieren. Wo das System den Eingabe-String nicht begrenzt, werden Systeme häufig hängen bleiben oder abstürzen.

Als nächstes kann man die Validierungsregeln dadurch testen, dass man eine Bedingung, die immer als wahr evaluiert wird (z.B. OR „x“=“x“), einfügt, indem man diese an das Passwort-Feld anhängt. Viele Systeme können so manipuliert werden, dass sie Unautorisierten Zugang gewähren. Dies liegt an der Konstruktion von SQL-Ausdrücken. Wenn man eine „OR TRUE“-Bedingung anhängt, kann man das System überlisten. Hier ein Beispiel für einen SQL-Ausdruck, der auf diese Weise manipuliert werden könnte:

Select userid, passwd from USERS where userid = :uid_entered and passwd = pwd_entered

Man stelle sich vor, der Benutzer hätte admin in das userid-Feld und password OR „x“=“x“ in das Passwort-Feld eingegeben. Daraus würde der folgende SQL-Ausdruck werden:

select userid, passwd from USERS where userid=admin and passwd=password OR „x“=“x“

Das ist wahrscheinlich nicht das, was der Entwickler im Sinn hatte.

Der Schlüssel liegt unter der Fußmatte

Es ist außerdem erstaunlich, wie häufig System-Accounts für einfache Anmeldungen bei Anwendungs-Datenbanken verwendet werden. Viele Web-Anwendungen speichern Anmeldeinformationen (d.h. Benutzernamen und Passwörter) in ihrer eigenen Anwendungs-Datenbank. Da man sich bei der Datenbank anmelden muss, um seine Anmeldeinformationen zu validieren, handhaben die meisten Systeme die Validierung mithilfe eines so genannten „Vor-Validierungs-Anmelde-Kontos“. Bspw. meldet sich das System als „admin/admin“ an und stellt sicher, dass es in der Datenbank einen Benutzer samt Passwort gibt, der den Benutzereingaben auf der Website entspricht.

Bemerkenswerterweise sind solche Konten fast ausnahmslos vom Typ „admin“ mit umfangreichen Berechtigungen innerhalb der Anwendung. Noch gefährlicher wird diese Praxis, wenn man bedenkt, dass die entsprechenden Passwörter entweder in einer Textdatei im Stammverzeichnis der Website gespeichert oder direkt in die Startseite integriert sind, damit die Web-Anwendung Zugriff auf die Passwörter für diese Konten hat. In beiden Fällen kann ein böswilliger Benutzer äußerst einfach an das Passwort gelangen. Diese Praxis ist fast so, als ob man den Hausschlüssel unter der Fußmatte versteckt oder den Ersatzschlüssel fürs Auto auf der Sonnenblende. Es ist ein großer Fehler, der das Eindringen in eine Web-basierte Anwendung zu einem Kinderspiel macht.

Page: 1 2 3 4

ZDNet.de Redaktion

Recent Posts

Bund meldet Fortschritte in der Netzversorgung

Die Bundesnetzagentur hat ihr Gigabit-Grundbuch aktualisiert. Drei von vier Haushalten sollen jetzt Zugang zu Breitbandanschlüssen…

3 Tagen ago

Vorinstallierte Schadsoftware auf IoT-Geräten

Mit dem Internet verbundene Digitale Bilderrahmen oder Mediaplayer können mit Schadsoftware infiziert werden und sind…

6 Tagen ago

iOS und iPadOS 18.2 beseitigen 21 Sicherheitslücken

Schädliche Apps können unter Umständen einen Systemabsturz auslösen. Mindestens eine Anfälligkeit erlaubt eine Remotecodeausführung.

7 Tagen ago

Top-Malware im November: Infostealer Formbook bleibt Nummer 1

Sein Anteil an allen Infektionen steigt in Deutschland auf 18,5 Prozent. Das Botnet Androxgh0st integriert…

7 Tagen ago

Google schließt schwerwiegende Sicherheitslücken in Chrome

Betroffen sind Chrome 131 und früher für Windows, macOS und Linux. Angreifer können unter Umständen…

7 Tagen ago

Data Analytics: Dienstleister wachsen zweistellig

Marktforscher Lündendonk erwartet für das Jahr 2025 ein durchschnittliches Umsatzwachstum von 14,9 Prozent.

1 Woche ago