Sie sind auf Seite 1von 40

Hacker-Contest

10. Mai 0x7DB // Daniel Quanz & Max Zeller Thema: Web-App-(In)Security

10.02.2011 | FB Informatik | Seceng Group | Hacker-Contest | Daniel Quanz & Max Zeller | 1

bersicht
Einleitung Web Technologien Analyse OWASP TOP 10 (The Open Web Applica=on Security Project) Demo

10.02.2011 | FB Informatik | Seceng Group | Hacker-Contest | Daniel Quanz & Max Zeller | 2

EINLEITUNG

10.02.2011 | FB Informatik | Seceng Group | Hacker-Contest | Daniel Quanz & Max Zeller | 3

bliche Web Applikationen

10.02.2011 | FB Informatik | Seceng Group | Hacker-Contest | Daniel Quanz & Max Zeller | 4

This Site Is Secure

10.02.2011 | FB Informatik | Seceng Group | Hacker-Contest | Daniel Quanz & Max Zeller | 5

Hauptproblem
Benutzer knnen beliebige Eingaben machen
Client-Side Checks knnen einfach umgangen werden (input valida=on) Request Parameter, Cookies, HTTP Headers Benutzer muss nicht Browser benutzen

Viele Tools vorhanden


Secfox Firefox Addon (Cookie Manipula=on ...) telnet / hWp request (Request manipula=on) WebScarab

10.02.2011 | FB Informatik | Seceng Group | Hacker-Contest | Daniel Quanz & Max Zeller | 6

Benutzerzugriff limitieren
Authen=fzierung
Die Basis fr jede sicher Web Anwendung, da sonst jeder Benutzer als Anonymous betrachtet werden muss Ist nur so sicher wie das schlechteste Passwort Teilweise zu umgehen

Session-Management
Session Tokens Reiden=zieren mit Zugangsdaten

Access Control
ACL / Capabili=es / Role Based
10.02.2011 | FB Informatik | Seceng Group | Hacker-Contest | Daniel Quanz & Max Zeller | 7

Input Handling (1)


Kein Benutzereingabe ist vertrauenswrdig Unerwartete Eingaben um Verhalten zu provozieren, welches nicht von den Developern vorgesehen war.
Input Valida=on

10.02.2011 | FB Informatik | Seceng Group | Hacker-Contest | Daniel Quanz & Max Zeller | 8

Input Handling (2)


En_ernen von bekannten AWack-Strings (X-Site-Scrip=ng)
<script>

Umgehen mit
<scr<script>ipt> <script>

URL Encoding
%27

Umgehen mit
%%2727
10.02.2011 | FB Informatik | Seceng Group | Hacker-Contest | Daniel Quanz & Max Zeller | 9

Attacker Handling
Error Handling / Logging
In Produk=v Systemen sollten niemlas system-generierte Fehlermeldung oder Debug-Informa>onen an den Endnutzer weitergegeben werden

Admin informieren
Viele Requests von einer einzigen IP in kurzer Zeit? Seman=sche Aulligkeiten (Bsp. Viele Ak=en auf einmal verkaufen) Requests mit bekannten AWack-Strings (Bsp. <script>)

Auf AWacken automa=siert reagieren


Zu viele Anfragen keine Antwort auf Anfragen
10.02.2011 | FB Informatik | Seceng Group | Hacker-Contest | Daniel Quanz & Max Zeller | 10

WEB TECHNOLOGIES

10.02.2011 | FB Informatik | Seceng Group | Hacker-Contest | Daniel Quanz & Max Zeller | 11

Hypertext Transfer Protocol


GET /path/file.html HTTP/1.1 Host: www.host.com Accept: image/gif, image/jpeg, */* Accept-Language: en-us Accept-Encoding: gzip, deflate Referrer: http://where.do.i.come.from User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1) (blank line) language=de&SUBMIT=Search%21 HTTP/1.1 200 OK Date: Sun, 23 Dec 2009 08:56:53 GMT Server: Apache/2.2.14 (Win32) Last-Modified: Sat, 20 Nov 2004 07:16:26 GMT ETag: "10000000565a5-2c-3e94b66c2e680" Accept-Ranges: bytes Content-Length: 44 Connection: close Content-Type: text/html X-Pad: avoid browser bug <html><body><h1>It works!</h1></body></html>

10.02.2011 | FB Informatik | Seceng Group | Hacker-Contest | Daniel Quanz & Max Zeller | 12

HTTP Methods
GET / POST
GET is logged!

HEAD / TRACE / OPTIONS PUT


Upload body. Wenn diese Methode ak=v ist kann man zB. Ein beliebiges Script hochladen und ausfhren

10.02.2011 | FB Informatik | Seceng Group | Hacker-Contest | Daniel Quanz & Max Zeller | 13

HTTP Cookies
Response Header
Set-Cookie: tracking=tI8rk7joMx44S2Uu84nSWc

Set-Cookie kann folgende Op=onen enthalten


Expires / Domain / Path - Gl=gkeitsbereich Secure Cookie wird nur ber HTTPS gesendet HWpOnly Auf das Cookie kann nicht ber Client-Side JavaScript zugegrien werden (nicht von allen Browsern untersttzt)

Request Header
Cookie: tracking=tI8rk7joMx44S2Uu84nSWc

10.02.2011 | FB Informatik | Seceng Group | Hacker-Contest | Daniel Quanz & Max Zeller | 14

HTTP Authentifizierung
Basic
Simple Base64 encoded

NTLM
Challenge-Response (Windows)

Digest
Challenge-Response MD5 checksum of nonce

HTTP Authen=zierung wird im Internet nicht sehr hurig benutzt. In Firmen Intranets jedoch umso mehr !

10.02.2011 | FB Informatik | Seceng Group | Hacker-Contest | Daniel Quanz & Max Zeller | 15

Server Side Funktionalitt


ASP.NET
Microsors Web Applica=on Framework Programmieren von WebApps mit Visual Studio ist sehr einfach Anfnger betrachten nicht die Security Probleme

PHP
Der Developer muss ich selbst darum kmmern, dass z.B. keine SQL Injec=on zugelassen wird. PHP an sich hat viele Sicherheitslcken

10.02.2011 | FB Informatik | Seceng Group | Hacker-Contest | Daniel Quanz & Max Zeller | 16

Client Side Funktionalitt


Forms / Hyperlinks
Hidden form elds Form wird in HTTP GET/POST Request bersetzt

Javascript
Validierung von Benutzereingaben Dynamische Anpassung der GUI Asynchrone Page reloads (AJAX)

10.02.2011 | FB Informatik | Seceng Group | Hacker-Contest | Daniel Quanz & Max Zeller | 17

ANALYSE

10.02.2011 | FB Informatik | Seceng Group | Hacker-Contest | Daniel Quanz & Max Zeller | 18

Informationsbeschaffung
Banner Grabbing
HTTP Header hat viele Informa=onen HTTP-Fingerprint (Tool: hWprint)

File Extensions
.asp .aspx .jsp .php .pl ...

Subdirectories
servlet/ pls/ WebObjects/ rails/

10.02.2011 | FB Informatik | Seceng Group | Hacker-Contest | Daniel Quanz & Max Zeller | 19

Web Spidering / Crawling


Automa=siertes Durchforsten einer Webseite Tools: Paros / Burp Spider (Burp Suite) / WebScarab

10.02.2011 | FB Informatik | Seceng Group | Hacker-Contest | Daniel Quanz & Max Zeller | 20

Attack Surface
Client-Side Valida=on
Mglicherweise wird beim Server nicht nochmal validiert

Error/Debug Messages
Informa=on Leaks

Datenbank Interak=on
SQL Injek=on

Third-Party Components

Bekannte Schwachstellen

Anzeigen von Benutzereingaben


Cross-Site Scrip=ng

Na=ve Code Komponenten


Buer Overow

Dynamische Weiterleitung Login

Iden=zierbare Server Sorware


Bekannte Misskongura=on

Redirec=on and Header Injec=on

Schwache Passwrter, Bruteforce

Klartextbertragung

Session Hijacking, Nutzerdaten abfangen

10.02.2011 | FB Informatik | Seceng Group | Hacker-Contest | Daniel Quanz & Max Zeller | 21

OWASP TOP 10

10.02.2011 | FB Informatik | Seceng Group | Hacker-Contest | Daniel Quanz & Max Zeller | 22

A1 - Injection
Es werden Programmbefehle eingeschleut Fr jeden mglich, der Abfragen abschicken kann Auf verschiedene Interpreter anwendbar (SQL, LDAP, XPATH, ...) In den meisten Fllen eine SQL-Injec=on Kann enormen Schaden verursachen (DB auslesen, modizieren, lschen)

10.02.2011 | FB Informatik | Seceng Group | Hacker-Contest | Daniel Quanz & Max Zeller | 23

Beispiel - SQL-Injection
Account Summary

"SELECT * FROM accounts Acct:5424-6066-2134-4334 WHERE acct= OR 1=1--" Acct:4128-7574-3921-0192 HTTP-Request


Acct:5424-9383-2039-4029 Acct:4128-0004-1234-0293

HTTP-Response

DB Data

SQL-Query

10.02.2011 | FB Informatik | Seceng Group | Hacker-Contest | Daniel Quanz & Max Zeller | 24

Gegenmanahmen
Jeden Input prfen Input Encoden User Rechte einschrnken Zugang zu Datenbank einschrnken

10.02.2011 | FB Informatik | Seceng Group | Hacker-Contest | Daniel Quanz & Max Zeller | 25

A2 - Cross-Site-Scripting (XSS)
Daten werden ber Web-Browser auf Webseite eingeschleut Diese Daten werden in der Regel in einer DB gespeichert Angri ist f jeden mglich, der Formular der Seite nutzen kann Ziel Session klauen Webseite umschreiben, Weiterleitungen auf Phishing Seiten

10.02.2011 | FB Informatik | Seceng Group | Hacker-Contest | Daniel Quanz & Max Zeller | 26

XSS - Beispiel
1. Angreifer fgt ein Schad-Script auf Webseite 2. Alice besucht diese inzierte Webseite 3. Skript sendet Session Cookie, ...

10.02.2011 | FB Informatik | Seceng Group | Hacker-Contest | Daniel Quanz & Max Zeller | 27

Gegenmanahmen
Jeden Input prfen Input Encoden White-List Befehle

10.02.2011 | FB Informatik | Seceng Group | Hacker-Contest | Daniel Quanz & Max Zeller | 28

A3 - Broken Authentication and Session Management


User meldet sich an
www.site.com?JSESSIONID=9FA1DB9EA...

URL rewri=ng User klickt auf Link, evilsite.com

Hacker sieht die Referer Logs und sieht die Session Hacker benutzt Session
10.02.2011 | FB Informatik | Seceng Group | Hacker-Contest | Daniel Quanz & Max Zeller | 29

Gegenmanahmen
SSL/Zer=kate benutzen. Session muss auch verschlsselt sein Logo muss Session ID lschen

10.02.2011 | FB Informatik | Seceng Group | Hacker-Contest | Daniel Quanz & Max Zeller | 30

A4 - Insecure Direct Object References


Angreifer bemerkt Account ID ?acct=6065 Angreifer ndert Account ?acct=6066 Angreifer hat Zugri auf Account 6066

hPps://www.onlinebank.com/user?acct=6065

10.02.2011 | FB Informatik | Seceng Group | Hacker-Contest | Daniel Quanz & Max Zeller | 31

A5 - Cross-Site Request Forgery (CSRF)


1) Angreifer inziert Webseite

2) Alice sieht manipulierte Webseite

Alice gibt unbewusst Befehle ab

10.02.2011 | FB Informatik | Seceng Group | Hacker-Contest | Daniel Quanz & Max Zeller | 32

A6 - Security Misconfiguration
Menschliche Fehler Fehlerhare Konguar=on
ACL Session Management DB Zugrie ....

10.02.2011 | FB Informatik | Seceng Group | Hacker-Contest | Daniel Quanz & Max Zeller | 33

A7 - Insecure Cryptographic Storage


Alice bergibt Daten

ErrorHandling

Log Daten einsehbar Administrator, IT Sta


10.02.2011 | FB Informatik | Seceng Group | Hacker-Contest | Daniel Quanz & Max Zeller | 34

LOGS

A8 - Failure to Restrict URL Access


Angreifer bemerkt seine Rolle /user/getAccountInfo Angreifer ndert Abfrage /admin/getAccountInfo Angreifer hat mehr Rechte

hPps://www.onlinebank.com/user/getAccountInfo

10.02.2011 | FB Informatik | Seceng Group | Hacker-Contest | Daniel Quanz & Max Zeller | 35

A9 - Insufficient Transport Layer Protection

Sendet Daten

10.02.2011 | FB Informatik | Seceng Group | Hacker-Contest | Daniel Quanz & Max Zeller | 36

Liest Daten

A10 - Unvalidated Redirects and Forwards


hPp://www.irs.gov/ taxrefund/claim.jsp? 1) AWacker sendet: click here year=2006& 2) Alice klickt Link 3) Skript leitet um &dest=www.evilsite.com

evilsite.com

10.02.2011 | FB Informatik | Seceng Group | Hacker-Contest | Daniel Quanz & Max Zeller | 37

Vielen Dank fr die Aufmerksamkeit

FRAGEN ?

10.02.2011 | FB Informatik | Seceng Group | Hacker-Contest | Daniel Quanz & Max Zeller | 38

hWp://guest:guest@10.0.3.1:8080/webgoat/aWack

DEMO - WEBGOAT

10.02.2011 | FB Informatik | Seceng Group | Hacker-Contest | Daniel Quanz & Max Zeller | 39

Literatur
[StPi08]

Dafydd StuWard and Marcus Pinto,


The Web Applica=on Hackers Handbook - Discovering and Exploi=ng Security Flaws, Wiley, 2008

[OWSAP] OWASP,
hWps://www.owasp.org/index.php/Main_Page

10.02.2011 | FB Informatik | Seceng Group | Hacker-Contest | Daniel Quanz & Max Zeller | 40