19
SQLi und XSS -- w3af 1 Proseminar - Proseminar - Werkzeugunterstützung Werkzeugunterstützung für sichere Software für sichere Software Web Application Security: SQL-injection, Cross Site Scripting -- w3af

Web Application Security: SQL-injection, Cross Site ... · SQLi und XSS -- w3af 2 Proseminar - Werkzeugunterstützung für sichere Software Web 2.0 Application und Angriffspunkte

  • Upload
    others

  • View
    20

  • Download
    1

Embed Size (px)

Citation preview

SQLi und XSS -- w3af

1

Proseminar - Proseminar - Werkzeugunterstützung Werkzeugunterstützung

für sichere Softwarefür sichere Software

Web Application Security:SQL-injection, Cross Site Scripting --

w3af

SQLi und XSS -- w3af

2

Proseminar - Proseminar - Werkzeugunterstützung Werkzeugunterstützung

für sichere Softwarefür sichere Software

● Web 2.0 Application und Angriffspunkte● Grundlagen: SQL● SQL-injection● Cross Site Scripting● Web Application Scans mit w3af

SQLi und XSS -- w3af

3

Proseminar - Proseminar - Werkzeugunterstützung Werkzeugunterstützung

für sichere Softwarefür sichere SoftwareEine Web 2.0 Application

SQLi und XSS -- w3af

4

Proseminar - Proseminar - Werkzeugunterstützung Werkzeugunterstützung

für sichere Softwarefür sichere SoftwareProbleme / Angriffspunkte

● Anwendungen sind oft komplex● Verschiedene Technologien sind für einfache Aktionen

notwendig (z.B. Login)● Verwendete Technologien sind selbst löchrig (Webserver,

PHP)● Protokolle beinhalten unzureichende, sicherheitsrelevante

Kriterien (HTTP)

=> Jede Eingabe ist prinzipiell gefährlich

SQLi und XSS -- w3af

5

Proseminar - Proseminar - Werkzeugunterstützung Werkzeugunterstützung

für sichere Softwarefür sichere SoftwareGrundlagen: SQL

● „Strukturierte Abfragen Sprache“

Web Application DMBS

Datenbank

SQL-Abfrage

Datensätze / Meldung

Besteht aus

SQLi und XSS -- w3af

6

Proseminar - Proseminar - Werkzeugunterstützung Werkzeugunterstützung

für sichere Softwarefür sichere SoftwareGrundlagen: SQL

NutzerVereinName LieblingsvereinMax Borussia DortmundAnna FC Schalke 04

● Attribute: Name, Lieblingsverein● Datensätze: (Max, Borussia Dortmund)

(Anna, FC Schalke 04)● Tabelle: NutzerVerein

Beispiel-Datenbank

SQLi und XSS -- w3af

7

Proseminar - Proseminar - Werkzeugunterstützung Werkzeugunterstützung

für sichere Softwarefür sichere SoftwareGrundlagen: SQL

Datensätze mit select abfragen:

SELECT Attribute FROM Tblname WHERE Bedingung;

● Attribute der Ergebnistabelle● Ursprungstabelle der Datensätze● Filterung von Datensätzen

SQLi und XSS -- w3af

8

Proseminar - Proseminar - Werkzeugunterstützung Werkzeugunterstützung

für sichere Softwarefür sichere SoftwareGrundlagen: SQL

NutzerVereinName LieblingsvereinMax Borussia DortmundAnna FC Schalke 04

SELECT Lieblingsverein FROM NutzerVerein WHERE Name = 'Max';

ErgebnisLieblingsvereinBorussia Dortmund

SQLi und XSS -- w3af

9

Proseminar - Proseminar - Werkzeugunterstützung Werkzeugunterstützung

für sichere Softwarefür sichere SoftwareSQL-injection

Häufig sollen SQL-Abfragen Nutzer-abhängig gestellt werden:

NutzerHTTP-AnfrageParameter

ServerseitigeSprache

SQL-Abfrage

Parameter

Ausführung

RückgabeHTTP-AntwortVerwerte Daten

Application

Datenbank

SQLi und XSS -- w3af

10

Proseminar - Proseminar - Werkzeugunterstützung Werkzeugunterstützung

für sichere Softwarefür sichere SoftwareSQL-injection

Parameter verändern durch bestimmte Eingaben dieSemantik der Abfrage:

AngreiferHTTP-AnfrageParameter

ServerseitigeSprache

SQL-Abfrage

Parameter

Ausführung

RückgabeHTTP-AntwortVerwerte Daten

Application

Datenbank

Bösartige SQL-Abfrage

SQLi und XSS -- w3af

11

Proseminar - Proseminar - Werkzeugunterstützung Werkzeugunterstützung

für sichere Softwarefür sichere SoftwareSQL-injection

SQL-Anfrage wird durch Parameter manipuliert:● Manipulation der Datenbank● Sensible Daten in der HTTP-Antwort

=> SQL-injection

AngreiferHTTP-AnfrageParameter

ServerseitigeSprache

SQL-Abfrage

Parameter

Ausführung

RückgabeHTTP-AntwortVerwerte Daten

Application

Datenbank

Bösartige SQL-Abfrage

SQLi und XSS -- w3af

12

Proseminar - Proseminar - Werkzeugunterstützung Werkzeugunterstützung

für sichere Softwarefür sichere SoftwareSQL-injection

● name, pass durch Formular gegeben● Weiterleitung, wenn Abfrage einen Datensatz liefert

SELECT Id FROM User WHERE Name = 'name' AND Password = 'md5(pass)';

● Eingabe: name= ' or 1=1;#

SELECT Id FROM User WHERE Name = ' ' or 1=1;#' AND Password = 'md5(pass)';

SQLi und XSS -- w3af

13

Proseminar - Proseminar - Werkzeugunterstützung Werkzeugunterstützung

für sichere Softwarefür sichere SoftwareSQL-injection

● name, pass durch Formular gegeben● Weiterleitung, wenn Abfrage einen Datensatz liefert

SELECT Id FROM User WHERE Name = 'name' AND Password = 'md5(pass)';

● Eingabe: name= ' or 1=1;#

SELECT Id FROM User WHERE Name = ' ' or 1=1;

SQLi und XSS -- w3af

14

Proseminar - Proseminar - Werkzeugunterstützung Werkzeugunterstützung

für sichere Softwarefür sichere SoftwareCross Site Scripting

(1) Anfrage eines Nutzers A mit Nutzerdaten D(2) Antwort auf Anfrage des Nutzers B (oder vorige)

enthält Nutzerdaten D

● D Scriptanweisungen enthält,● Die Web Application Scriptanweisungen ungefiltert

weitergibt=> Browser führt Anweisungen aus

Falls

Sicherheitslücke: Cross Site Scripting (XSS)

SQLi und XSS -- w3af

15

Proseminar - Proseminar - Werkzeugunterstützung Werkzeugunterstützung

für sichere Softwarefür sichere SoftwareCross Site Scripting

● Unterteilung in reflektiertes und persistentes XSS

SQLi und XSS -- w3af

16

Proseminar - Proseminar - Werkzeugunterstützung Werkzeugunterstützung

für sichere Softwarefür sichere SoftwareCross Site Scripting

● Unterteilung in reflektiertes und persistentes XSS

Opfer Application

HTTP-Anfrage

HTTP-Antwort

Verseuchte Daten: Formular, GET (Link)

Erzeuge Antwort mit Nutzerdaten

Ausführung desScripts

Schadcode befindet sich in der direkten Antwort auf eine verseuchte Anfrage

=> Reflektiertes XSS

SQLi und XSS -- w3af

17

Proseminar - Proseminar - Werkzeugunterstützung Werkzeugunterstützung

für sichere Softwarefür sichere SoftwareCross Site Scripting

● Unterteilung in reflektiertes und persistentes XSS

Angreifer

Application

HTTP-Anfrage SpeichertNutzerdaten

Opfer

HTTP-Anfrage

Füge gespeicherteDaten ein

HTTP-AntwortAusführungdes Scripts

Persistentes XSS

SQLi und XSS -- w3af

18

Proseminar - Proseminar - Werkzeugunterstützung Werkzeugunterstützung

für sichere Softwarefür sichere Softwarew3af

● „web application attack and audit framework“● OpenSource Projekt in Python seit 2006

Core

Audit

Crawl

KoordinationFunktionen

sqli

xss

web_spider

WebserverHTTP-Client

Form- & Linkextraktion

benötigt

En/decoder,..

SQLi und XSS -- w3af

19

Proseminar - Proseminar - Werkzeugunterstützung Werkzeugunterstützung

für sichere Softwarefür sichere SoftwareBewertung w3af

✔ Konfiguration und Bedienung✔ Leicht erweiterbar✔ Hilfreiche Zusatztools (Encoder, eigene generierte HTTP-

Anfragen/-Antworten)

✗ Nicht fehlerfrei („false positiv“, „false negative“)✗ Auswertung nicht immer leicht