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
10.02.2011 | FB Informatik | Seceng Group | Hacker-Contest | Daniel Quanz & Max Zeller | 4
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
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
10.02.2011 | FB Informatik | Seceng Group | Hacker-Contest | Daniel Quanz & Max Zeller | 8
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>)
WEB TECHNOLOGIES
10.02.2011 | FB Informatik | Seceng Group | Hacker-Contest | Daniel Quanz & Max Zeller | 11
10.02.2011 | FB Informatik | Seceng Group | Hacker-Contest | Daniel Quanz & Max Zeller | 12
HTTP Methods
GET
/
POST
GET
is
logged!
10.02.2011 | FB Informatik | Seceng Group | Hacker-Contest | Daniel Quanz & Max Zeller | 13
HTTP Cookies
Response
Header
Set-Cookie: tracking=tI8rk7joMx44S2Uu84nSWc
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
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
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
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
Klartextbertragung
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
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
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
hPps://www.onlinebank.com/user?acct=6065
10.02.2011 | FB Informatik | Seceng Group | Hacker-Contest | Daniel Quanz & Max Zeller | 31
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
ErrorHandling
LOGS
hPps://www.onlinebank.com/user/getAccountInfo
10.02.2011 | FB Informatik | Seceng Group | Hacker-Contest | Daniel Quanz & Max Zeller | 35
Sendet Daten
10.02.2011 | FB Informatik | Seceng Group | Hacker-Contest | Daniel Quanz & Max Zeller | 36
Liest Daten
evilsite.com
10.02.2011 | FB Informatik | Seceng Group | Hacker-Contest | Daniel Quanz & Max Zeller | 37
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]
[OWSAP]
OWASP,
hWps://www.owasp.org/index.php/Main_Page
10.02.2011 | FB Informatik | Seceng Group | Hacker-Contest | Daniel Quanz & Max Zeller | 40