Cross-Site-Scripting Grundlagen: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
Zeile 11: Zeile 11:
 
*Dort kommt es zur manipulieren serverseitige Skripte zur Benutzeranmeldung.
 
*Dort kommt es zur manipulieren serverseitige Skripte zur Benutzeranmeldung.
 
=Es gibt 3 Arten des Cross-Site-Scripting/XSS=
 
=Es gibt 3 Arten des Cross-Site-Scripting/XSS=
==Reflektiertes Cross-Site-Scripting/XSS==
+
*[[Reflektiertes Cross-Site-Scripting/XSS
 
*Schädliches Skript an den Webserver gesendet durch:
 
*Schädliches Skript an den Webserver gesendet durch:
 
**Aufruf einer manipulierten URL  
 
**Aufruf einer manipulierten URL  
Zeile 22: Zeile 22:
 
*Diese Form ist eine Client-seitige Implementierung.
 
*Diese Form ist eine Client-seitige Implementierung.
 
{{#drawio:xss1}}
 
{{#drawio:xss1}}
 
+
*[[Persistentes Cross-Site-Scripting/XSS]]
==Persistentes Cross-Site-Scripting/XSS==
 
 
*Schädlichen Skripte werden auf dem Webserver, in einer Datenbank, gespeichert  
 
*Schädlichen Skripte werden auf dem Webserver, in einer Datenbank, gespeichert  
 
*Man muss kein Link generieren und auch nichts an das Opfer verschicken
 
*Man muss kein Link generieren und auch nichts an das Opfer verschicken
Zeile 30: Zeile 29:
 
*Anfällig für diese Scripting-Art sind Blogs und Foren.
 
*Anfällig für diese Scripting-Art sind Blogs und Foren.
 
{{#drawio:xss2}}
 
{{#drawio:xss2}}
==DOM-basiertes Cross-Site-Scripting/XSS==
+
*[[DOM-basiertes Cross-Site-Scripting/XSS]]
 
*Über einen gefälschten GET-Parameter in die URL fügt der Hacker JavaScript ein.  
 
*Über einen gefälschten GET-Parameter in die URL fügt der Hacker JavaScript ein.  
 
*Opfer bekommt Link geschickt und klickt Link an.
 
*Opfer bekommt Link geschickt und klickt Link an.
Zeile 38: Zeile 37:
 
*Statische Websites, welche die jeweilige Skript-Sprache unterstützen, sind gefährdet.
 
*Statische Websites, welche die jeweilige Skript-Sprache unterstützen, sind gefährdet.
 
{{#drawio:xss3}}
 
{{#drawio:xss3}}
 +
 
=Schutzmaßnahmen für Internet-User=
 
=Schutzmaßnahmen für Internet-User=
 
*Ausschalten der JavaScript-Unterstützung im Browser.  
 
*Ausschalten der JavaScript-Unterstützung im Browser.  

Version vom 6. März 2023, 13:47 Uhr

XSS/Cross-Site-Scripting

  • Ausnutzen von Sicherheitslücken in Webanwendungen
  • Schädliche Skripte werden dabei in einen vertrauenswürdigen Kontext eingespeist
  • System der Nutzer kann angeriffen werden
  • Meist in JavaScript und/oder Quelltextdatei programmiert werden.
  • harmlosen Varianten beispielsweise aufpoppende Fenster
  • Worst Case - Zugriff auf vertrauliche Informationen

Gefahr

  • Gefahr besteht wenn Benutzerdaten ohne Überprüfung an den Webbrowser weiterleitet werden
  • Über XSS-Löcher gelangen die schädlichen Skripte zu den betroffenen Clients.
  • Dort kommt es zur manipulieren serverseitige Skripte zur Benutzeranmeldung.

Es gibt 3 Arten des Cross-Site-Scripting/XSS

  • [[Reflektiertes Cross-Site-Scripting/XSS
  • Schädliches Skript an den Webserver gesendet durch:
    • Aufruf einer manipulierten URL
    • Absenden eines präparierten Formulars
  • Angreifer sendet eine Mail zu den Opfern
  • Webserver gibt Daten ohne Überprüfung an den Client zurück
  • Durch Klick auf den Link startet den Schadcode automatisch
  • Schadcode wird nicht auf dem Server gespeichert
  • Beliebte Angriffsziele sind dynamische Websites
  • Diese Form ist eine Client-seitige Implementierung.
  • Persistentes Cross-Site-Scripting/XSS
  • Schädlichen Skripte werden auf dem Webserver, in einer Datenbank, gespeichert
  • Man muss kein Link generieren und auch nichts an das Opfer verschicken
  • Bei jedem Aufruf durch einen Client ausgeliefert.
  • Ziele sind Rechner die Benutzerdaten ohne Überprüfung serverseitig speichern
  • Anfällig für diese Scripting-Art sind Blogs und Foren.
  • DOM-basiertes Cross-Site-Scripting/XSS
  • Über einen gefälschten GET-Parameter in die URL fügt der Hacker JavaScript ein.
  • Opfer bekommt Link geschickt und klickt Link an.
  • Angriffsart wird auch lokales XSS genannt.
  • Schadcode wird durch eine Lücke in einem clientseitigen Skript ohne Überprüfung ausgeführt.
  • Webserver nicht an dem Prozess beteiligt.
  • Statische Websites, welche die jeweilige Skript-Sprache unterstützen, sind gefährdet.

Schutzmaßnahmen für Internet-User

  • Ausschalten der JavaScript-Unterstützung im Browser.
  • Es gibt Add-ons, die Sie vor XSS-Angriffen schützen können.
  • Beispiel Mozilla Firefox Erweiterung NoScript.
  • Man kann Whitelisten setzen wenn diese sicher sind

Maßnahme der Website-Betreiber gegen XSS-Attacken

  • Alle eingehenden Eingabewerte als unsicher betrachten.
  • Alle Daten sollten entsprechend geprüft werden.
  • Auch hier kann man Whitelisten anlegen
  • Man kann Eingaben auf Ihrer Website zu scannen und nur vertrauenswürdige Inhalte zuzulassen,
  • Exzellenten Schutz gegen Cross-Site-Scripting.
  • Vorgeschaltete Webprotection(z.B. Sophos Webprotection)
  • Datenausgabe sollte auch abgesichert werden
  • Problematischen HTML-Metazeichen durch Zeichenreferenzen ersetzen
  • Metazeichen werden normale Zeichen gewertet
  • potenzielle eingeschleuste Skripte können nicht gestartet werden.
  • Die meisten Programmiersprachen können dies.

Quelle