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