daniel franke tim benedict jagla matthias thimm
TRANSCRIPT
![Page 1: Daniel Franke Tim Benedict Jagla Matthias Thimm](https://reader036.vdocuments.site/reader036/viewer/2022062417/55204d7c49795902118cce6e/html5/thumbnails/1.jpg)
![Page 2: Daniel Franke Tim Benedict Jagla Matthias Thimm](https://reader036.vdocuments.site/reader036/viewer/2022062417/55204d7c49795902118cce6e/html5/thumbnails/2.jpg)
Cross-Site-Scripting und
Cross-Site-Request Schwachstellen in Web Applikationen
Daniel FrankeTim Benedict Jagla
Matthias Thimm
![Page 3: Daniel Franke Tim Benedict Jagla Matthias Thimm](https://reader036.vdocuments.site/reader036/viewer/2022062417/55204d7c49795902118cce6e/html5/thumbnails/3.jpg)
Cross-Site-Scripting
![Page 4: Daniel Franke Tim Benedict Jagla Matthias Thimm](https://reader036.vdocuments.site/reader036/viewer/2022062417/55204d7c49795902118cce6e/html5/thumbnails/4.jpg)
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
![Page 5: Daniel Franke Tim Benedict Jagla Matthias Thimm](https://reader036.vdocuments.site/reader036/viewer/2022062417/55204d7c49795902118cce6e/html5/thumbnails/5.jpg)
XSS (non-persistent/reflected)
5
![Page 6: Daniel Franke Tim Benedict Jagla Matthias Thimm](https://reader036.vdocuments.site/reader036/viewer/2022062417/55204d7c49795902118cce6e/html5/thumbnails/6.jpg)
6
XSS (non-persistent/reflected)
![Page 7: Daniel Franke Tim Benedict Jagla Matthias Thimm](https://reader036.vdocuments.site/reader036/viewer/2022062417/55204d7c49795902118cce6e/html5/thumbnails/7.jpg)
7
XSS (non-persistent/reflected)
![Page 8: Daniel Franke Tim Benedict Jagla Matthias Thimm](https://reader036.vdocuments.site/reader036/viewer/2022062417/55204d7c49795902118cce6e/html5/thumbnails/8.jpg)
8
XSS (non-persistent/reflected)
![Page 9: Daniel Franke Tim Benedict Jagla Matthias Thimm](https://reader036.vdocuments.site/reader036/viewer/2022062417/55204d7c49795902118cce6e/html5/thumbnails/9.jpg)
9
Gefahren• CookieCatcher• Link obfuscating
• „Nice to know“• Auch in <img> tag kann eine HTTP GET Request
eingebettet werden
XSS (non-persistent/reflected)
![Page 10: Daniel Franke Tim Benedict Jagla Matthias Thimm](https://reader036.vdocuments.site/reader036/viewer/2022062417/55204d7c49795902118cce6e/html5/thumbnails/10.jpg)
XSS (persistent/stored)
10
![Page 11: Daniel Franke Tim Benedict Jagla Matthias Thimm](https://reader036.vdocuments.site/reader036/viewer/2022062417/55204d7c49795902118cce6e/html5/thumbnails/11.jpg)
11
XSS (persistent/stored)
![Page 12: Daniel Franke Tim Benedict Jagla Matthias Thimm](https://reader036.vdocuments.site/reader036/viewer/2022062417/55204d7c49795902118cce6e/html5/thumbnails/12.jpg)
12
XSS (persistent/stored)
![Page 13: Daniel Franke Tim Benedict Jagla Matthias Thimm](https://reader036.vdocuments.site/reader036/viewer/2022062417/55204d7c49795902118cce6e/html5/thumbnails/13.jpg)
13
XSS (persistent/stored)
![Page 14: Daniel Franke Tim Benedict Jagla Matthias Thimm](https://reader036.vdocuments.site/reader036/viewer/2022062417/55204d7c49795902118cce6e/html5/thumbnails/14.jpg)
14
XSS (persistent/stored)
![Page 15: Daniel Franke Tim Benedict Jagla Matthias Thimm](https://reader036.vdocuments.site/reader036/viewer/2022062417/55204d7c49795902118cce6e/html5/thumbnails/15.jpg)
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”
![Page 16: Daniel Franke Tim Benedict Jagla Matthias Thimm](https://reader036.vdocuments.site/reader036/viewer/2022062417/55204d7c49795902118cce6e/html5/thumbnails/16.jpg)
XSS (DOM-based)
16
![Page 17: Daniel Franke Tim Benedict Jagla Matthias Thimm](https://reader036.vdocuments.site/reader036/viewer/2022062417/55204d7c49795902118cce6e/html5/thumbnails/17.jpg)
17
XSS (DOM-based)
![Page 18: Daniel Franke Tim Benedict Jagla Matthias Thimm](https://reader036.vdocuments.site/reader036/viewer/2022062417/55204d7c49795902118cce6e/html5/thumbnails/18.jpg)
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);
![Page 19: Daniel Franke Tim Benedict Jagla Matthias Thimm](https://reader036.vdocuments.site/reader036/viewer/2022062417/55204d7c49795902118cce6e/html5/thumbnails/19.jpg)
Cross-SiteRequest-Forgery
![Page 20: Daniel Franke Tim Benedict Jagla Matthias Thimm](https://reader036.vdocuments.site/reader036/viewer/2022062417/55204d7c49795902118cce6e/html5/thumbnails/20.jpg)
20
CSRF
Was ist CSRF?• Unterschieben eines URL-Aufrufes• Automatisches authentifizieren & ausführen
![Page 21: Daniel Franke Tim Benedict Jagla Matthias Thimm](https://reader036.vdocuments.site/reader036/viewer/2022062417/55204d7c49795902118cce6e/html5/thumbnails/21.jpg)
21
CSRF
Vorgehen
![Page 22: Daniel Franke Tim Benedict Jagla Matthias Thimm](https://reader036.vdocuments.site/reader036/viewer/2022062417/55204d7c49795902118cce6e/html5/thumbnails/22.jpg)
22
CSRF
Gefahr• Jede Serverseitige Aktion ist
anfällig• Ja: JEDE !!!
Bsp: http://www.example.com/Logout
![Page 23: Daniel Franke Tim Benedict Jagla Matthias Thimm](https://reader036.vdocuments.site/reader036/viewer/2022062417/55204d7c49795902118cce6e/html5/thumbnails/23.jpg)
23
CSRF
Ursache• Zustandslosigkeit• Automatische Authentifikation
(Cookies)
![Page 24: Daniel Franke Tim Benedict Jagla Matthias Thimm](https://reader036.vdocuments.site/reader036/viewer/2022062417/55204d7c49795902118cce6e/html5/thumbnails/24.jpg)
24
CSRF
ING-Direct Sept. 2008• U.a. Überweisungen möglich• Automatische Authentifikation
(Cookies)
Google Mail 2007• Filteränderungen und
Umleitungen möglich
![Page 25: Daniel Franke Tim Benedict Jagla Matthias Thimm](https://reader036.vdocuments.site/reader036/viewer/2022062417/55204d7c49795902118cce6e/html5/thumbnails/25.jpg)
25
CSRF
Aspekte • Authentizität• Integrität• (Verfügbarkeit)• (Vertraulichkeit)
![Page 26: Daniel Franke Tim Benedict Jagla Matthias Thimm](https://reader036.vdocuments.site/reader036/viewer/2022062417/55204d7c49795902118cce6e/html5/thumbnails/26.jpg)
Schutzmaßnahmen
![Page 27: Daniel Franke Tim Benedict Jagla Matthias Thimm](https://reader036.vdocuments.site/reader036/viewer/2022062417/55204d7c49795902118cce6e/html5/thumbnails/27.jpg)
27
Allgemeine Schutzmaßnamen
Clientseitig• Session IDs• Erweiterungen wie NoScript• Cookies verbieten
Serverseitig• Tokens• HTML Entities verwenden• URL Encode verwenden
![Page 28: Daniel Franke Tim Benedict Jagla Matthias Thimm](https://reader036.vdocuments.site/reader036/viewer/2022062417/55204d7c49795902118cce6e/html5/thumbnails/28.jpg)
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:
„?“
![Page 29: Daniel Franke Tim Benedict Jagla Matthias Thimm](https://reader036.vdocuments.site/reader036/viewer/2022062417/55204d7c49795902118cce6e/html5/thumbnails/29.jpg)
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]
![Page 30: Daniel Franke Tim Benedict Jagla Matthias Thimm](https://reader036.vdocuments.site/reader036/viewer/2022062417/55204d7c49795902118cce6e/html5/thumbnails/30.jpg)
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
![Page 31: Daniel Franke Tim Benedict Jagla Matthias Thimm](https://reader036.vdocuments.site/reader036/viewer/2022062417/55204d7c49795902118cce6e/html5/thumbnails/31.jpg)
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
![Page 32: Daniel Franke Tim Benedict Jagla Matthias Thimm](https://reader036.vdocuments.site/reader036/viewer/2022062417/55204d7c49795902118cce6e/html5/thumbnails/32.jpg)
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/
![Page 33: Daniel Franke Tim Benedict Jagla Matthias Thimm](https://reader036.vdocuments.site/reader036/viewer/2022062417/55204d7c49795902118cce6e/html5/thumbnails/33.jpg)
FRAGEN!?
![Page 34: Daniel Franke Tim Benedict Jagla Matthias Thimm](https://reader036.vdocuments.site/reader036/viewer/2022062417/55204d7c49795902118cce6e/html5/thumbnails/34.jpg)
Vielen Dank für die Aufmerksamkeit