35

Cross-Site-Scripting und Cross-Site-Request Schwachstellen in Web Applikationen

  • Upload
    ula

  • View
    80

  • Download
    1

Embed Size (px)

DESCRIPTION

Cross-Site-Scripting und Cross-Site-Request Schwachstellen in Web Applikationen. Daniel Franke Tim Benedict Jagla Matthias Thimm. Cross-Site-Scripting. XSS Allgemein. Cross Site Scripting Einschleusen von Schadcode um Browserausgabe zu manipulieren Folge: Manipulation HTML-Formulare - PowerPoint PPT Presentation

Citation preview

Page 1: Cross-Site-Scripting und Cross-Site-Request Schwachstellen in Web Applikationen
Page 2: Cross-Site-Scripting und Cross-Site-Request Schwachstellen in Web Applikationen

Cross-Site-Scripting und

Cross-Site-Request Schwachstellen in Web Applikationen

Daniel FrankeTim Benedict Jagla

Matthias Thimm

Page 3: Cross-Site-Scripting und Cross-Site-Request Schwachstellen in Web Applikationen

Cross-Site-Scripting

Page 4: Cross-Site-Scripting und Cross-Site-Request Schwachstellen in Web Applikationen

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: Cross-Site-Scripting und Cross-Site-Request Schwachstellen in Web Applikationen

XSS (non-persistent/reflected)

Page 6: Cross-Site-Scripting und Cross-Site-Request Schwachstellen in Web Applikationen

6

XSS (non-persistent/reflected)

Page 7: Cross-Site-Scripting und Cross-Site-Request Schwachstellen in Web Applikationen

7

XSS (non-persistent/reflected)

Page 8: Cross-Site-Scripting und Cross-Site-Request Schwachstellen in Web Applikationen

8

XSS (non-persistent/reflected)

Page 9: Cross-Site-Scripting und Cross-Site-Request Schwachstellen in Web Applikationen

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: Cross-Site-Scripting und Cross-Site-Request Schwachstellen in Web Applikationen

XSS (persistent/stored)

Page 11: Cross-Site-Scripting und Cross-Site-Request Schwachstellen in Web Applikationen

11

XSS (persistent/stored)

Page 12: Cross-Site-Scripting und Cross-Site-Request Schwachstellen in Web Applikationen

12

XSS (persistent/stored)

Page 13: Cross-Site-Scripting und Cross-Site-Request Schwachstellen in Web Applikationen

13

XSS (persistent/stored)

Page 14: Cross-Site-Scripting und Cross-Site-Request Schwachstellen in Web Applikationen

14

XSS (persistent/stored)

Page 15: Cross-Site-Scripting und Cross-Site-Request Schwachstellen in Web Applikationen

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: Cross-Site-Scripting und Cross-Site-Request Schwachstellen in Web Applikationen

XSS (DOM-based)

Page 17: Cross-Site-Scripting und Cross-Site-Request Schwachstellen in Web Applikationen

17

XSS (DOM-based)

Page 18: Cross-Site-Scripting und Cross-Site-Request Schwachstellen in Web Applikationen

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: Cross-Site-Scripting und Cross-Site-Request Schwachstellen in Web Applikationen

Cross-SiteRequest-Forgery

Page 20: Cross-Site-Scripting und Cross-Site-Request Schwachstellen in Web Applikationen

20

CSRF

Was ist CSRF?• Unterschieben eines URL-Aufrufes• Automatisches authentifizieren & ausführen

Page 21: Cross-Site-Scripting und Cross-Site-Request Schwachstellen in Web Applikationen

21

CSRF

Vorgehen

Page 22: Cross-Site-Scripting und Cross-Site-Request Schwachstellen in Web Applikationen

22

CSRF

Gefahr• Jede Serverseitige Aktion ist

anfällig• Ja: JEDE !!!

Bsp: http://www.example.com/Logout

Page 23: Cross-Site-Scripting und Cross-Site-Request Schwachstellen in Web Applikationen

23

CSRF

Ursache• Zustandslosigkeit• Automatische

Authentifikation (Cookies)

Page 24: Cross-Site-Scripting und Cross-Site-Request Schwachstellen in Web Applikationen

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: Cross-Site-Scripting und Cross-Site-Request Schwachstellen in Web Applikationen

25

CSRF

Aspekte • Authentizität• Integrität• (Verfügbarkeit)• (Vertraulichkeit)

Page 26: Cross-Site-Scripting und Cross-Site-Request Schwachstellen in Web Applikationen

Schutzmaßnahmen

Page 27: Cross-Site-Scripting und Cross-Site-Request Schwachstellen in Web Applikationen

27

Allgemeine Schutzmaßnamen

Clientseitig• Session IDs• Erweiterungen wie NoScript• Cookies verbieten

Serverseitig• Tokens• HTML Entities verwenden• URL Encode verwenden

Page 28: Cross-Site-Scripting und Cross-Site-Request Schwachstellen in Web Applikationen

28

Exkurs: HTML Entities & URL Encode

Beispiel• Anfrage in Formularfeld:

<script>alert('XSS')</script>• Anfrage in HTML Entities:

&lt;script&gt;alert(&#039;XSS&#039;)&lt;/script&gt;

• Anfrage in URL Encode: %3Cscript%3Ealert%28%27XSS%27%29%3C%2Fscript%3E

• JavaScript Interpreter:

„?“

Page 29: Cross-Site-Scripting und Cross-Site-Request Schwachstellen in Web Applikationen

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: Cross-Site-Scripting und Cross-Site-Request Schwachstellen in Web Applikationen

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: Cross-Site-Scripting und Cross-Site-Request Schwachstellen in Web Applikationen

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: Cross-Site-Scripting und Cross-Site-Request Schwachstellen in Web Applikationen

32

Validierung via location.host DOM des übergeordneten Fensters

Token wird geliefert sofern der Frame validiert wurde

Double-Submit Cookie+ [LTJ12]Example: Framing Solution

Page 33: Cross-Site-Scripting und Cross-Site-Request Schwachstellen in Web Applikationen

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” [ZF08]

• W. Zeller, E. W. Felten, “Cross-Site Request Forgeries: Exploitation and Prevention”

[T1]• http://wp.dynaperl.de/

2008/11/29/tcp-syn-dos/

33

Page 34: Cross-Site-Scripting und Cross-Site-Request Schwachstellen in Web Applikationen

FRAGEN!?

Page 35: Cross-Site-Scripting und Cross-Site-Request Schwachstellen in Web Applikationen

Vielen Dank für die Aufmerksamkeit