Zap automatischer scan: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
 
(6 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 3: Zeile 3:
 
*URL einfügen
 
*URL einfügen
 
*Attack
 
*Attack
[[Datei:Zap-1.png|700px]]
 
=Ergebnisse=
 
[[Datei:Zap-11.png|700px]]
 
  
[[Datei:Zap-12.png|700px]]
 
  
[[Datei:Zap-13.png|700px]]
+
[[Datei:Zap-01.png|700px]]
 +
== ZAP-Fundstellen im Überblick ==
  
[[Datei:Zap-14.png|700px]]
+
OWASP ZAP nennt jede Fundstelle "Alert" – das hat nichts mit den [[GVM Alert|Alerts in GVM]] zu tun, wo damit Benachrichtigungen gemeint sind.
 +
 
 +
Die Zahl in Klammern gibt die Anzahl betroffener URLs an. "(Systemic)" bedeutet, dass der Befund die gesamte Anwendung betrifft; ZAP fasst dann zusammen, statt hunderte gleichartige Treffer zu listen.
 +
 
 +
{| class="wikitable"
 +
|+ Risikostufen in ZAP
 +
! Farbe !! Stufe !! Bedeutung
 +
|-
 +
| rot || High || nachgewiesene, ausnutzbare Schwachstelle
 +
|-
 +
| orange || Medium || fehlende Schutzmaßnahme oder eingeschränkt ausnutzbar
 +
|-
 +
| gelb || Low || geringe Auswirkung, meist Informationspreisgabe
 +
|-
 +
| blau || Informational || Beobachtung ohne Sicherheitsrelevanz
 +
|}
 +
 
 +
=== Nachgewiesene Schwachstellen ===
 +
 
 +
{| class="wikitable"
 +
! Fundstelle !! Erklärung !! Abhilfe
 +
|-
 +
| Remote OS Command Injection || Eingaben fließen in einen Systemaufruf. Mit Trennzeichen wie <code>;</code> oder <code>&#124;</code> hängt der Angreifer eigene Befehle an und führt Code auf dem Server aus – mit den Rechten des Webserver-Prozesses. || Systemaufrufe mit Benutzerdaten vermeiden; wenn unvermeidbar, Argumente als Array übergeben statt als Kommandozeile
 +
|-
 +
| SQL Injection || Eingaben landen ungefiltert in einer Datenbankabfrage. Reicht vom Lesen fremder Datensätze bis zum Umgehen der Anmeldung. || Prepared Statements mit gebundenen Parametern statt zusammengebauter Abfragestrings
 +
|-
 +
| Cross Site Scripting (DOM Based) || JavaScript liest Daten aus URL oder Fragment und schreibt sie über <code>innerHTML</code> ins Dokument. Läuft rein im Browser – der Server sieht die Nutzlast nie. || Sichere DOM-Methoden wie <code>textContent</code>; keine ungeprüften Daten in <code>innerHTML</code>
 +
|-
 +
| Cross Site Scripting (Reflected) || Eine Eingabe geht an den Server und erscheint unverändert in der Antwort. Angriff über präparierten Link, wirkt in der Sitzung des Opfers. || Kontextabhängige Ausgabekodierung
 +
|}
 +
 
 +
=== Fehlende Schutzmaßnahmen ===
 +
 
 +
Keine Lücken für sich genommen, aber sie erleichtern die Ausnutzung anderer Fehler.
 +
 
 +
{| class="wikitable"
 +
! Fundstelle !! Erklärung !! Abhilfe
 +
|-
 +
| Absence of Anti-CSRF Tokens || Formulare ohne unvorhersehbares Token lassen sich von fremden Seiten absenden; der Browser hängt die Cookies automatisch an. || Token pro Formular und Sitzung; <code>SameSite</code>-Cookies
 +
|-
 +
| Content Security Policy (CSP) Header Not Set || Ohne CSP fehlt die zweite Verteidigungslinie, die eine gefundene XSS-Lücke oft noch entschärft. || <code>Content-Security-Policy</code> setzen, möglichst ohne <code>unsafe-inline</code>
 +
|-
 +
| Missing Anti-clickjacking Header || Die Seite lässt sich in einen fremden iframe einbetten und mit einer transparenten Schicht überlagern. || <code>frame-ancestors</code> in der CSP, ersatzweise <code>X-Frame-Options</code>
 +
|-
 +
| Strict-Transport-Security Header Not Set || Der erste Aufruf kann über HTTP erfolgen und abgefangen werden. || <code>Strict-Transport-Security</code> mit ausreichender <code>max-age</code>
 +
|-
 +
| X-Content-Type-Options Header Missing || Ohne <code>nosniff</code> raten Browser den Inhaltstyp; eine hochgeladene Datei kann so als Skript ausgeführt werden. || <code>X-Content-Type-Options: nosniff</code>
 +
|-
 +
| Sub Resource Integrity Attribute Missing || Extern eingebundene Skripte ohne <code>integrity</code>-Attribut: Wird das CDN manipuliert, führt die Seite fremden Code aus. || <code>integrity</code>- und <code>crossorigin</code>-Attribut setzen
 +
|-
 +
| Re-examine Cache-control Directives || Cache-Vorgaben, die persönliche Inhalte in Proxys oder im Browser-Cache liegen lassen könnten. || <code>Cache-Control: no-store</code> für authentifizierte Antworten
 +
|}
 +
 
 +
=== Informationspreisgabe ===
 +
 
 +
{| class="wikitable"
 +
! Fundstelle !! Erklärung !! Abhilfe
 +
|-
 +
| Server Leaks Version Information || Produkt und Version im <code>Server</code>-Header. Kein Angriffsweg, aber Aufklärung: Der Angreifer weiß, welche Exploits in Frage kommen. || <code>ServerTokens Prod</code> bzw. <code>server_tokens off</code>
 +
|-
 +
| In Page Banner Information Leak || Versionsangaben im Seiteninhalt, etwa auf Standard- oder Fehlerseiten. || Standardseiten ersetzen
 +
|-
 +
| Information Disclosure – Suspicious Comments || HTML-Kommentare mit Wörtern wie "TODO" oder "password". Meist harmlos, gelegentlich Hinweise auf interne Pfade oder Testzugänge. || Kommentare beim Ausliefern entfernen
 +
|}
 +
 
 +
=== Hinweise ohne Sicherheitsrelevanz ===
 +
 
 +
{| class="wikitable"
 +
! Fundstelle !! Erklärung
 +
|-
 +
| Authentication Request Identified || ZAP hat Anmeldeformulare erkannt – Hinweis darauf, wo für einen authentifizierten Scan Zugangsdaten hinterlegt werden können.
 +
|-
 +
| Modern Web Application || Die Anwendung nutzt viel JavaScript. Ein reiner HTML-Crawl erreicht nicht alle Funktionen; hier ist der AJAX-Spider nötig.
 +
|-
 +
| User Controllable HTML Element Attribute (Potential XSS) || Eingaben landen in HTML-Attributen. ZAP hat keinen Angriff nachgewiesen, nur den Weg beobachtet – Prüfkandidaten, keine Befunde.
 +
|}
 +
 
 +
{{Hinweis|Der Unterschied zwischen '''nachgewiesen''' und '''vermutet''' ist zentral: Die vier bestätigten DOM-XSS-Funde hat ZAP durch manipulierte Eingaben belegt, die 14 "Potential XSS" nur durch Beobachtung vermutet. In GVM übernimmt die Quality of Detection diese Rolle, in ZAP steht sie im Namen der Fundstelle.}}
 +
 
 +
{{Hinweis|Priorisiert wird nicht nach Farbe, sondern danach, wie tief ein Angreifer kommt: erst Command Injection (Codeausführung auf dem Server), dann SQL Injection (Datenbank), dann XSS (Browser des Opfers), zuletzt die fehlenden Header.}}

Aktuelle Version vom 19. August 2026, 12:00 Uhr

Scan

  • Automated Scan
  • URL einfügen
  • Attack


Zap-01.png

ZAP-Fundstellen im Überblick

OWASP ZAP nennt jede Fundstelle "Alert" – das hat nichts mit den Alerts in GVM zu tun, wo damit Benachrichtigungen gemeint sind.

Die Zahl in Klammern gibt die Anzahl betroffener URLs an. "(Systemic)" bedeutet, dass der Befund die gesamte Anwendung betrifft; ZAP fasst dann zusammen, statt hunderte gleichartige Treffer zu listen.

Risikostufen in ZAP
Farbe Stufe Bedeutung
rot High nachgewiesene, ausnutzbare Schwachstelle
orange Medium fehlende Schutzmaßnahme oder eingeschränkt ausnutzbar
gelb Low geringe Auswirkung, meist Informationspreisgabe
blau Informational Beobachtung ohne Sicherheitsrelevanz

Nachgewiesene Schwachstellen

Fundstelle Erklärung Abhilfe
Remote OS Command Injection Eingaben fließen in einen Systemaufruf. Mit Trennzeichen wie ; oder | hängt der Angreifer eigene Befehle an und führt Code auf dem Server aus – mit den Rechten des Webserver-Prozesses. Systemaufrufe mit Benutzerdaten vermeiden; wenn unvermeidbar, Argumente als Array übergeben statt als Kommandozeile
SQL Injection Eingaben landen ungefiltert in einer Datenbankabfrage. Reicht vom Lesen fremder Datensätze bis zum Umgehen der Anmeldung. Prepared Statements mit gebundenen Parametern statt zusammengebauter Abfragestrings
Cross Site Scripting (DOM Based) JavaScript liest Daten aus URL oder Fragment und schreibt sie über innerHTML ins Dokument. Läuft rein im Browser – der Server sieht die Nutzlast nie. Sichere DOM-Methoden wie textContent; keine ungeprüften Daten in innerHTML
Cross Site Scripting (Reflected) Eine Eingabe geht an den Server und erscheint unverändert in der Antwort. Angriff über präparierten Link, wirkt in der Sitzung des Opfers. Kontextabhängige Ausgabekodierung

Fehlende Schutzmaßnahmen

Keine Lücken für sich genommen, aber sie erleichtern die Ausnutzung anderer Fehler.

Fundstelle Erklärung Abhilfe
Absence of Anti-CSRF Tokens Formulare ohne unvorhersehbares Token lassen sich von fremden Seiten absenden; der Browser hängt die Cookies automatisch an. Token pro Formular und Sitzung; SameSite-Cookies
Content Security Policy (CSP) Header Not Set Ohne CSP fehlt die zweite Verteidigungslinie, die eine gefundene XSS-Lücke oft noch entschärft. Content-Security-Policy setzen, möglichst ohne unsafe-inline
Missing Anti-clickjacking Header Die Seite lässt sich in einen fremden iframe einbetten und mit einer transparenten Schicht überlagern. frame-ancestors in der CSP, ersatzweise X-Frame-Options
Strict-Transport-Security Header Not Set Der erste Aufruf kann über HTTP erfolgen und abgefangen werden. Strict-Transport-Security mit ausreichender max-age
X-Content-Type-Options Header Missing Ohne nosniff raten Browser den Inhaltstyp; eine hochgeladene Datei kann so als Skript ausgeführt werden. X-Content-Type-Options: nosniff
Sub Resource Integrity Attribute Missing Extern eingebundene Skripte ohne integrity-Attribut: Wird das CDN manipuliert, führt die Seite fremden Code aus. integrity- und crossorigin-Attribut setzen
Re-examine Cache-control Directives Cache-Vorgaben, die persönliche Inhalte in Proxys oder im Browser-Cache liegen lassen könnten. Cache-Control: no-store für authentifizierte Antworten

Informationspreisgabe

Fundstelle Erklärung Abhilfe
Server Leaks Version Information Produkt und Version im Server-Header. Kein Angriffsweg, aber Aufklärung: Der Angreifer weiß, welche Exploits in Frage kommen. ServerTokens Prod bzw. server_tokens off
In Page Banner Information Leak Versionsangaben im Seiteninhalt, etwa auf Standard- oder Fehlerseiten. Standardseiten ersetzen
Information Disclosure – Suspicious Comments HTML-Kommentare mit Wörtern wie "TODO" oder "password". Meist harmlos, gelegentlich Hinweise auf interne Pfade oder Testzugänge. Kommentare beim Ausliefern entfernen

Hinweise ohne Sicherheitsrelevanz

Fundstelle Erklärung
Authentication Request Identified ZAP hat Anmeldeformulare erkannt – Hinweis darauf, wo für einen authentifizierten Scan Zugangsdaten hinterlegt werden können.
Modern Web Application Die Anwendung nutzt viel JavaScript. Ein reiner HTML-Crawl erreicht nicht alle Funktionen; hier ist der AJAX-Spider nötig.
User Controllable HTML Element Attribute (Potential XSS) Eingaben landen in HTML-Attributen. ZAP hat keinen Angriff nachgewiesen, nur den Weg beobachtet – Prüfkandidaten, keine Befunde.

ℹ️ Hinweis: Der Unterschied zwischen nachgewiesen und vermutet ist zentral: Die vier bestätigten DOM-XSS-Funde hat ZAP durch manipulierte Eingaben belegt, die 14 "Potential XSS" nur durch Beobachtung vermutet. In GVM übernimmt die Quality of Detection diese Rolle, in ZAP steht sie im Namen der Fundstelle.

ℹ️ Hinweis: Priorisiert wird nicht nach Farbe, sondern danach, wie tief ein Angreifer kommt: erst Command Injection (Codeausführung auf dem Server), dann SQL Injection (Datenbank), dann XSS (Browser des Opfers), zuletzt die fehlenden Header.