Persistent XSS (Prime)

Was bedeutet Persistent XSS (Prime)?

Bei Persistent XSS (Prime) neutralisiert die Software die vom Benutzer kontrollierbaren Eingaben nicht oder falsch, bevor sie in eine Ausgabe eingefügt werden, die als Webseite für andere Benutzer verwendet wird.

XSS-Schwachstellen (Cross-Site Scripting) treten auf, wenn:

  1. Nicht vertrauenswürdige Daten werden normalerweise aus einer Webanforderung in eine Webanwendung eingegeben.
  2. Die Webanwendung generiert dynamisch eine Webseite, die diese nicht vertrauenswürdigen Daten enthält.
  3. Während der Seitengenerierung verhindert die Anwendung nicht, dass die Daten Inhalte enthalten, die von einem Webbrowser ausgeführt werden können, z.B. JavaScript, HTML-Tags, HTML-Attribute, Mausereignisse, Flash, ActiveX usw.
  4. Ein Opfer besucht die generierte Webseite über einen Webbrowser, der schädliche Skripts enthält, die mit den nicht vertrauenswürdigen Daten eingefügt wurden.
  5. Da das Skript von einer Webseite stammt, die vom Webserver gesendet wurde, führt der Webbrowser des Opfers das schädliche Skript im Kontext der Domäne des Webservers aus.
  6. Dies verstößt effektiv gegen die Absicht der Web-Browser-Richtlinie “Same Origin”, die besagt, dass Skripts in einer Domäne nicht auf Ressourcen zugreifen oder Code in einer anderen Domäne ausführen dürfen.

Sobald das schädliche Skript injiziert ist, kann der Angreifer verschiedene schädliche Aktivitäten ausführen. Der Angreifer kann private Informationen, wie z.B. Cookies, die Sitzungsinformationen enthalten, vom Computer des Opfers an den Angreifer übertragen. Der Angreifer kann im Namen des Opfers böswillige Anfragen an eine Website senden. Dies kann besonders gefährlich für die Website sein, wenn das Opfer über Administratorrechte zur Verwaltung dieser Website verfügt. Phishing-Angriffe können verwendet werden, um vertrauenswürdige Websites zu emulieren und das Opfer dazu zu bewegen, ein Kennwort einzugeben, wodurch der Angreifer das Konto des Opfers auf dieser Website gefährden kann. Schließlich könnte das Skript eine Sicherheitsanfälligkeit im Webbrowser ausnutzen, die möglicherweise den Computer des Opfers übernimmt, der manchmal als “Drive-by-Hacking” bezeichnet wird.

Tipp

Überprüfen Sie die Sicherheit Ihrer Website mit unserem kostenlosen Security Crawler oder mit der OSG Performance Suite Free Version.

Lösung

Dieser Scanner beginnt mit der Übermittlung eines eindeutigen ‘sicheren’ Werts und durchsucht dann die gesamte Anwendung nach allen Positionen, an denen dieser Wert vorkommt. Anschließend wird eine Reihe von Angriffen auf die gleiche Weise wie bei der ‘reflektierten’ Version ausgeführt. In diesem Fall werden jedoch alle Zielpositionen auf anderen Seiten überprüft.

Hinweis: Dieser Scanner scannt nur HTTP-PUT-Anforderungen bei LOW-Grenzen. Wenn sich eine XSS-Injektion in einer JSON-Antwort befindet, wird ein LOW-Risiko und ein LOW-Vertrauensalarm ausgelöst.

Verstehen Sie den Kontext, in dem Ihre Daten verwendet werden, und die zu erwartende Kodierung. Dies ist besonders wichtig, wenn Daten zwischen verschiedenen Komponenten übertragen werden oder wenn Ausgaben generiert werden, die mehrere Kodierungen gleichzeitig enthalten können, z. B. Webseiten oder mehrteilige E-Mail-Nachrichten. Untersuchen Sie alle erwarteten Kommunikationsprotokolle und Datendarstellungen, um die erforderlichen Kodierungsstrategien zu bestimmen.
Verwenden Sie für alle Daten, die auf einer anderen Webseite ausgegeben werden, insbesondere für Daten, die von externen Eingaben empfangen wurden, die entsprechende Kodierung für alle nicht-alphanumerischen Zeichen.

Für Teile des gleichen Ausgabedokuments sind möglicherweise andere Kodierungen erforderlich, die davon abhängen, ob die Ausgabe in folgendem Format vorliegt:

  • HTML-Text
  • Elementattribute (z. B. src = “XYZ”)
  • URIs
  • JavaScript-Abschnitte
  • Cascading Style Sheets und Style-Eigenschaft
  • etc.

Beachten Sie, dass die HTML-Entity-Codierung nur für den HTML-Body geeignet ist.

Andere Informationen

In vielen Fällen kann der Angriff gestartet werden, ohne dass das Opfer sich dessen bewusst ist. Selbst bei vorsichtigen Benutzern verwenden Angreifer häufig verschiedene Methoden, um den böswilligen Teil des Angriffs zu kodieren, beispielsweise die URL-Kodierung oder Unicode, sodass die Anforderung weniger verdächtig erscheint.

Allgemeiner Schwachstellen-Datenbanklink

https://cwe.mitre.org/data/definitions/79.html


Sie haben noch Fragen?

Kontaktieren Sie uns

Kostenloser SEO-Check der OSG


Weitere Inhalte