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

Preview:

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

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)

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)

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)

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:

&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:

„?“

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

32

Validierung via location.host DOM des übergeordneten Fensters

Token wird geliefert sofern der Frame validiert wurde

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

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

FRAGEN!?

Vielen Dank für die Aufmerksamkeit

Recommended