Daniel Franke Tim Benedict Jagla Matthias Thimm.
Post on 06-Apr-2015
108 Views
Preview:
Transcript
Cross-Site-Scripting und
Cross-Site-Request Schwachstellen in Web Applikationen
Daniel FrankeTim Benedict Jagla
Matthias Thimm
Cross-Site-Scripting
4
XSS Allgemein Cross Site Scripting• Einschleusen von
Schadcode um Browserausgabe zu manipulieren
Folge: Manipulation• HTML-Formulare• Cookies• URL‘s
Zugang• Clientseitige Sprachen• Z.B.• JavaScript• VBScript• Flash
XSS (non-persistent/reflected)
5
6
XSS (non-persistent/reflected)
7
XSS (non-persistent/reflected)
8
XSS (non-persistent/reflected)
9
Gefahren• CookieCatcher• Link obfuscating
• „Nice to know“• Auch in <img> tag kann eine HTTP GET Request
eingebettet werden
XSS (non-persistent/reflected)
XSS (persistent/stored)
10
11
XSS (persistent/stored)
12
XSS (persistent/stored)
13
XSS (persistent/stored)
14
XSS (persistent/stored)
15
XSS (persistent/stored)
MySpace Oktober 2005
• „Samy Worm“ by Samy Kamkar• OZ: “but most of all, Samy is my hero“
• In 20 Stunden über eine Million “Infizierungen”
XSS (DOM-based)
16
17
XSS (DOM-based)
18
XSS (DOM-based) Twitter Anfang 2011
(function(g){var a=location.href.split("#!")[1];
if(a){ g.location=g.HBR=a;}
})(window);
http://twitter.com/#!javascript:alert(document.domain);
Cross-SiteRequest-Forgery
20
CSRF
Was ist CSRF?• Unterschieben eines URL-Aufrufes• Automatisches authentifizieren & ausführen
21
CSRF
Vorgehen
22
CSRF
Gefahr• Jede Serverseitige Aktion ist
anfällig• Ja: JEDE !!!
Bsp: http://www.example.com/Logout
23
CSRF
Ursache• Zustandslosigkeit• Automatische Authentifikation
(Cookies)
24
CSRF
ING-Direct Sept. 2008• U.a. Überweisungen möglich• Automatische Authentifikation
(Cookies)
Google Mail 2007• Filteränderungen und
Umleitungen möglich
25
CSRF
Aspekte • Authentizität• Integrität• (Verfügbarkeit)• (Vertraulichkeit)
Schutzmaßnahmen
27
Allgemeine Schutzmaßnamen
Clientseitig• Session IDs• Erweiterungen wie NoScript• Cookies verbieten
Serverseitig• Tokens• HTML Entities verwenden• URL Encode verwenden
28
Exkurs: HTML Entities & URL Encode
Beispiel• Anfrage in Formularfeld:
<script>alert('XSS')</script>• Anfrage in HTML Entities:
<script>alert('XSS')</script>
• Anfrage in URL Encode: %3Cscript%3Ealert%28%27XSS%27%29%3C%2Fscript%3E
• JavaScript Interpreter:
„?“
29
Üblicher Schutz vor CSRF
Funktion• Serverseitig werden
HTTP Requests (bis auf POST) eingeschränkt
• Token werden verwendet
Nachteile• Server muss Token
verwalten• Token muss
Formularfeld zugeordnet sein• Abgelaufene Token
müssen ungültig gemacht werden
DoS[T1]
30
Schutz vor CSRF:Double-Submit Cookie [ZF08] Funktion• Braucht keine
serverseitigen Zustände mehr
• Zwei Tokens• Einer im Cookie• Einer im Request
Vorteile• „Same-Origin-Policy“ für
Cookies• Sind die Tokens identisch
kommen Cookie und Request von derselben Ressource
Nachteile• Modifikationen im
Applikation Code
31
Schutz vor CSRF:Double-Submit Cookie+ [LTJ12] Funktion Serverseitig• Proxy („Gatekeeper“)
validiert Token• Whitelist für
Einstiegspunkte in Applikation ohne Token (Bilder, JavaScript, CSS)
• „Gatekeeper“ fügt jedem ausgehenden HTML eine JavaScript Library hinzu
HTTP Request Möglichkeiten• Requests durch
Interaktion mit DOM• Implizite Requests durch
HTML tags• Requests von JavaScripts
XMLHttpRequest• Weiterleitungen seitens
des Servers
Quellen [SJW07]
• A. Wiegenstein, Dr. M. Schuhmacher, X. Jia, F. Weidemann, „The Cross Site Scripting Threat“
[Kurtz10]• A. Kurtz, „Bedrohung Cross-Site
Request-Forgery – Grenzüberschreitung: Die „andere“ Schwachstelle in Web-Applikationen
[LTJ12]• S. Lekies, W. Tighzert, M. Johns,
„Towards stateless, client-side driven Cross-Site Request Forgery protection für Web applications“
[ST12]• L. K. Shar, H. B. K. Tan,
„Defending against Cross-Site Scripting Attacks“
[Klein05]• A. Klein, “DOM Based
Cross Site Scripting or XSS of the Third Kind”
[T1]• http://wp.dynaperl.de/
2008/11/29/tcp-syn-dos/
FRAGEN!?
Vielen Dank für die Aufmerksamkeit
top related