Blog

Finden Sie Sicherheitslücken in Ihrer Anwendung mit dem OWASP ZAP Tool

Aktualisiert Oktober 22, 2025
6 Minuten

Vor kurzem hatten wir die großartige Gelegenheit, die OWASP-Sicherheitsstandards für die Anwendungen zu implementieren, die wir für unseren Kunden - ein Unternehmen für Flottenmanagement und Fahrermobilität - entwickelt haben.

Die Anforderung war, die Anwendungen gemäß den Stufen 1 und 2 des Application Security Verification Standard (ASVS) zu sichern.

ASVS definiert Stufen der Sicherheitsüberprüfung, wobei jede Stufe an Tiefe gewinnt. ASVS Stufe 1 ist für jede Software gedacht. ASVS Level 2 betrifft Anwendungen, die sensible Daten enthalten, die geschützt werden müssen.

Stufe 1: Opportunistisch

Eine Anwendung erreicht ASVS Level 1, wenn sie angemessen gegen leicht zu entdeckende Sicherheitslücken in Anwendungen geschützt ist, die in den OWASP Top 10 aufgeführt sind, wie z.B. Injection, Broken Authentication and Session Management, Cross-Site Scripting (XXS) oder Cross-Site Request.

Stufe 2: Standard

Stufe 2 gewährleistet, dass Sicherheitskontrollen vorhanden sind. Stufe 2 ist in der Regel für Anwendungen geeignet, die umfangreiche Business-to-Business-Transaktionen abwickeln, einschließlich solcher, die Informationen aus dem Gesundheitswesen verarbeiten oder sensible Daten verarbeiten. Quelle: Application Security Verification Standard 3.0

SQL-Einschleusung

Laut der offiziellen Liste der TOP 10 der kritischsten Sicherheitsrisiken für Webanwendungen im Jahr 2013 stehen Injektionen wie SQL, OS und LDAP an der Spitze der Liste. Injektionen stellen das größte Risiko dar und werden von Angreifern auch gerne genutzt, um die sensibelsten und wertvollsten Daten aus der Anwendung herauszuholen.

SQL-Injektionen können die Datenbank einer Anwendung zerstören. Eine SQL-Injektion ist eine Technik, bei der böswillige Angreifer SQL-Befehle über die Eingabe auf einer Webseite in eine SQL-Anweisung injizieren können. Eingefügte SQL-Befehle können SQL-Anweisungen verändern und die Sicherheit einer Webanwendung gefährden.

Einfaches Beispiel

Der ursprüngliche Zweck des Codes war es, eine SQL-Anweisung zu erstellen, um einen Benutzer mit einer bestimmten ID zu empfangen.

Wenn es nichts gibt, was den Benutzer daran hindert, unerwünschte Eingaben zu machen, kann ein Angreifer gefährliche Eingaben in die Anwendung machen, wie unten dargestellt:

UserId: 105 oder 1=1

Auf der Serverseite führt dies zu folgender Anweisung:

SELECT * FROM Benutzer WHERE UserId = 105 OR 1=1

Das Beispiel für die SQL ist gültig. Es gibt alle Zeilen aus der Tabelle 'Benutzer' zurück, wenn die Bedingung WHERE 1=1 wahr ist. Erscheint das gefährlich? Was wäre, wenn die Tabelle 'Benutzer' die Namen und Passwörter der Benutzer enthalten würde?

Genauso gut könnte die Aussage folgendermaßen lauten:

SELECT UserId, Name, Passwort FROM Benutzer WHERE UserId = 105 oder 1=1

OWASP ZAP

Wenn Sie sich eine Situation vorstellen, in der Sie als Tester alle Felder der Anwendung überprüfen müssen, in die ein Benutzer Daten eingeben kann, und eine Anweisung an die Datenbank ausführen müssen, scheint das eine riesige Aufgabe zu sein.

Zum Glück gibt es ein Tool namens OWASP ZAP, mit dem Sie testen können, ob Anwendungen Sicherheitslücken aufweisen und ob die Sicherheitsprüfungen effizient implementiert wurden. Damit können Sie die Geschwindigkeit und Effektivität der Tests verbessern.

OWASP ZAP (auch OWASP Zed Attack Proxy) ist eines der weltweit beliebtesten kostenlosen Sicherheitstools. Es kann dabei helfen, automatisch Sicherheitslücken in Webanwendungen zu finden.

Sie können OWASP ZAP hier kostenlos herunterladen.

Unter den Dutzenden von Funktionen, die OWASP ZAP zum Testen der Sicherheit einer Anwendung bietet, gibt es eine, die zum Testen gegen SQL-Injections verwendet wird.

OWASP ZAP für Browser einrichten

Bevor Sie mit dem Testen beginnen können, müssen Sie die Anwendung einrichten und Ihren Browser konfigurieren:

  1. Installieren und öffnen Sie die Anwendung.
  2. Wählen Sie Extras ➝ Optionen ➝ Dynamische SSL-Zertifikate und klicken Sie auf die Schaltfläche "Erzeugen".
  3. Akzeptieren Sie das Popup-Fenster 'Vorhandenes Zertifikat überschreiben?'.
  4. Klicken Sie auf die Schaltfläche Speichern und speichern Sie die Datei an einem Ort, den Sie sich merken können.
  5. Nun müssen Sie das Zertifikat in Ihren Browser importieren (Firefox empfohlen).
  6. Wählen Sie Einstellungen ➝ Erweitert ➝ Zertifikate in Ihrem Browser.
  7. Wählen Sie Zertifikate anzeigen ➝ Importieren und wählen Sie das Zertifikat, das Sie zuvor erstellt hatten.
  8. Markieren Sie alle Kontrollkästchen und klicken Sie auf OK.
  9. Nachdem das Zertifikat importiert wurde, müssen Sie ZAP als Proxy festlegen, über den der gesamte Datenverkehr durch den Browser geleitet wird.
  10. Wählen Sie Präferenzen ➝ Erweitert ➝ Registerkarte Netzwerk ➝ Einstellungen.
  11. Wählen Sie das Optionsfeld 'Manuelle Proxy-Konfiguration:' im Popupfenster Verbindungseinstellungen.
  12. Geben Sie die Daten des HTTP-Proxys ein: localhost / Port: 8080
  13. Markieren Sie das Kontrollkästchen 'Diesen Proxyserver für alle Protokolle verwenden' und klicken Sie auf OK.
  14. Ihr Browser sollte nun korrekt konfiguriert sein.
  15. Wenn Sie OWASP ZAP aufrufen, werden Sie in der oberen linken Ecke eine Schaltfläche 'Sites' sehen.
  16. Gehen Sie zurück zu Ihrem Browser und öffnen Sie eine beliebige Webseite.
  17. Gehen Sie zurück zu OWASP ZAP und Sie werden feststellen, dass unter 'Sites' eine Reihe von Websites angezeigt werden.
  18. An dieser Stelle können Sie alle angeforderten Websites und Ressourcen sowie die Antworten einsehen.

Fuzzing für SQL-Injection-Schwachstellen mit OWASP ZAP

Wenn Ihr Browser konfiguriert und der Proxy korrekt eingestellt ist, können Sie das OWASP ZAP-Tool verwenden:

  1. Suchen Sie in Ihrer Anwendung das Feld, an das Sie die POST-Anfrage senden können.
  2. Nachdem Sie die POST-Anfrage in Ihrer Webanwendung gesendet haben, gehen Sie zurück zu OWASP ZAP.
  3. Auf der Registerkarte Verlauf sehen Sie Ihre POST-Anfrage und darüber den Wert, der in die POST-Anfrage eingegeben wurde; in diesem Fall 'name=Rake'. [caption id="attachment_16322" align="alignnone" width="1021"]OWASP ZAP POST-Anfrage OWASP ZAP POST-Anfrage[/caption]
  4. Markieren Sie den Inhalt 'Rake', klicken Sie mit der rechten Maustaste darauf und dann auf 'Fuzz...'. Fuzz
  5. Es wird ein neues Fenster angezeigt. Markieren Sie erneut 'Rake' und klicken Sie auf 'Hinzufügen...'. Harke hinzufügen
  6. Es wird das Fenster 'Nutzdaten' angezeigt, in dem Sie erneut auf die Schaltfläche 'Hinzufügen...' klicken müssen.
  7. Wählen Sie im Fenster "Nutzlast hinzufügen" aus dem Dropdown-Menü "Typ:" die Option "Datei-Fuzzers". Nutzlast hinzufügen
  8. Erweitern Sie die Liste 'jbrofuzz' und markieren Sie die beiden Kontrollkästchen mit der Bezeichnung 'Injection' und 'SQL Injection' aus der erweiterten Liste. Klicken Sie auf die Schaltfläche 'Hinzufügen'. Payload File Fuzzers hinzufügen
  9. Klicken Sie im Fenster 'Nutzlasten' auf die Schaltfläche "OK".
  10. Klicken Sie im Fenster 'Fuzzer' auf die Schaltfläche 'Fuzzer starten'. Fuzzer starten
  11. Auf der Registerkarte 'Fuzzer' können Sie sehen, dass das Feld, in dem die POST-Anfrage ausgeführt wurde, nun von Dutzenden von SQL-Anfragen angegriffen wird, die für Ihre Anwendung potenziell gefährlich sein können. Anfragen mit dem Status 'Reflected' in der Spalte 'State' sind für die Anwendung sicher - der Rest jedoch möglicherweise nicht. Reflektierter Zustand

Um 100% sicher zu sein, dass Ihre Anwendung gegen SQL-Injections geschützt ist, wäre es ideal, die Anwendung mit allen potenziell gefährlichen Anfragen anzugreifen und zu sehen, wie sie reagiert.

Dank OWASP ZAP sind Sie in der Lage, die Schwachstellen Ihrer Anwendung zu entdecken, was zu einem höheren Maß an Sicherheit führt, nachdem Sie die entsprechenden Sicherheiten geschaffen haben.

Contact

Let’s discuss how we can support your journey.