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

April-Patches für Windows legen VPN-Verbindungen lahm

Betroffen sind Windows 10 und Windows 11. Laut Microsoft treten unter Umständen VPN-Verbindungsfehler auf. Eine…

1 Tag ago

AMD steigert Umsatz und Gewinn im ersten Quartal

Server-CPUs und Server-GPUs legen deutlich zu. Das Gaming-Segment schwächelt indes.

2 Tagen ago

Google stopft schwerwiegende Sicherheitslöcher in Chrome 124

Zwei Use-after-free-Bugs stecken in Picture In Picture und der WebGPU-Implementierung Dawn. Betroffen sind Chrome für…

3 Tagen ago

Studie: 91 Prozent der Ransomware-Opfer zahlen Lösegeld

Die durchschnittliche Lösegeldzahlung liegt bei 2,5 Millionen Dollar. Acht Prozent der Befragten zählten 2023 mehr…

3 Tagen ago

DMA: EU stuft auch Apples iPadOS als Gatekeeper ein

Eine neue Analyse der EU-Kommission sieht vor allem eine hohe Verbreitung von iPadOS bei Business-Nutzern.…

3 Tagen ago

Chips bescheren Samsung deutlichen Gewinnzuwachs

Das operative Ergebnis wächst um fast 6 Billionen Won auf 6,64 Billionen Won. Die Gewinne…

4 Tagen ago