User controllable HTML element attribute (potential XSS)

Was bedeutet User controllable HTML element attribute (potential XSS)?

Definition

Beim User controllable HTML element attribute kann es sich möglicherweise um ein Cross-Site-Scripting handeln. Die Software neutralisiert die vom Benutzer kontrollierbaren Eingaben nicht oder fehlerhaft, 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 in eine Webanwendung eingegeben, normalerweise aus einer Webanforderung.
  2. Die Webanwendung generiert eine Webseite dynamisch, 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, etc.
  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 in der Lage sein sollten, auf Ressourcen zuzugreifen oder Code in einer anderen Domäne auszuführen.

In DOM-basierten XSS führt der Client die XSS Injection in die Seite ein. Beim DOM-basierten XSS handelt es sich im Allgemeinen um ein Server-gesteuertes, vertrauenswürdiges Skript, das an den Client gesendet wird, z.B. Javascript, das die Sicherheitsüberprüfungen eines Formulars ausführt, bevor der Benutzer es sendet.

Wenn das vom Server bereitgestellte Skript vom Benutzer bereitgestellte Daten verarbeitet und anschließend wieder in die Webseite einfügt (z.B. mit dynamischem HTML), ist DOM-basiertes XSS möglich.

Bei dieser Prüfung werden Benutzereingaben in Abfragezeichenfolgeparametern und POST-Daten geprüft, um zu ermitteln, wo bestimmte HTML-Attributwerte gesteuert werden können. Dies ermöglicht die Erkennung von Hotspots für XSS (Cross-Site-Scripting), für die eine weitere Überprüfung durch einen Sicherheitsanalysten erforderlich ist, um die Ausnutzbarkeit zu ermitteln.

Lösung

Verstehen Sie den Kontext, in dem Ihre Daten verwendet werden, und die erforderliche 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.

Allgemeiner Schwachstellen-Datenbanklink

Wenn Sie noch Fragen bezüglich des Themas haben, dann können Sie sich gerne weiter über die Seite der CWE Organisation mithilfe des ersten Links, oder auch durch die Seite der PortSwigger mithilfe des zweiten Links weiter informieren. 


Sie haben noch Fragen?

Kontaktieren Sie uns

Kostenloser SEO-Check der OSG


Weitere Inhalte