Daniel Franke Tim Benedict Jagla Matthias Thimm.

Post on 06-Apr-2015

108 views 0 download

Transcript of Daniel Franke Tim Benedict Jagla Matthias Thimm.

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:

&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

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