Paper: Automated Discovery of Parameter Pollution Vulnerabilities in Web Applications



Ähnliche Dokumente
Sicherheit in Webanwendungen CrossSite, Session und SQL

Aktuelle Sicherheitsprobleme im Internet: Angriffe auf Web-Applikationen

Datensicherheit. Vorlesung 7: Sommersemester 2015 h_da. Heiko Weber, Lehrbeauftragter

Web Applications Vulnerabilities

PHP-Schwachstellen und deren Ausnutzung

Schwachstellenanalyse 2012

php Hier soll ein Überblick über das Erstellen von php Programmen gegeben werden. Inhaltsverzeichnis 1.Überblick Parameterübergabe...

Was ist LDAP. Aufbau einer LDAP-Injection. Sicherheitsmaßnahmen. Agenda. LDAP-Injection. ITSB2006 WS 09/10 Netzwerkkonfiguration und Security

Motivation. Inhalt. URI-Schemata (1) URI-Schemata (2)

PHP-(Un-)Sicherheit. Hacker-Seminar Herbstsemester 2006 Laboratory for Dependable Distributed Systems Universität Mannheim.

FileMaker Go 13 ohne Connects

Aktuelle Sicherheitsprobleme im Internet: Angriffe auf Web-Applikationen

Wie können Sie eine Client Lizenz wieder freigeben?

Zusammenfassung Web-Security-Check ZIELSYSTEM

Web 2.0 (In) Security PHPUG Würzburg Björn Schotte

Online-Publishing mit HTML und CSS für Einsteigerinnen

Betroffene Produkte: Alle Versionen von Oracle Forms (3.0-10g, C/S und Web), Oracle Clinical, Oracle Developer Suite

Multivariate Tests mit Google Analytics

Tracking-Beispiele. Inhalt: Standard Tracking / Cookie Tracking Anchor-Tracking Direct Tracking Referer Tracking Tracking von Produkt-Feeds

Durch Standardisierung können Webservices von jedem Cluster verwendet werden, unabhängig von Betriebssystem und verwendeter Sprache.

Anleitung OpenCms 8 Webformular Auswertung

Kombinierte Attacke auf Mobile Geräte

Tutorial. In diesem Tutorial möchte ich die Möglichkeiten einer mehrspracheigen Web-Site erläutern.

Der Aufruf von DM_in_Euro 1.40 sollte die Ausgabe 1.40 DM = Euro ergeben.

Aktuelle Bedrohungen im Internet

Web Application Security

EJB Beispiel. JEE Vorlesung 10. Ralf Gitzel

mysql - Clients MySQL - Abfragen eine serverbasierenden Datenbank

OWASP Stammtisch München Sep 2014 XSS und andere Sicherheitslücken aus der Perspektive des Programmcodes

Klaus Schild, XML Clearinghouse Namensräume

Informationstechnik & System-Management SQL INJECTION. Selbstgemachte Sicherheitslücken. SQL-Injection ITSB2006 Michael Donabaum

Java Webentwicklung (mit JSP)

Algorithmische Kryptographie

2. XML 2.1 XML 1.0 und XML Schema. Jörg Schwenk Lehrstuhl für Netz- und Datensicherheit

RIPS. Automatisierte Schwachstellenerkennung in PHP-Software mittels statischer Quellcode-Analyse. BSI Deutscher IT-Sicherheitskongress

OP-LOG

Auto-Provisionierung tiptel 30x0 mit Yeastar MyPBX

Aktuelle Angriffstechniken. Steffen Tröscher cirosec GmbH, Heilbronn

TimeMachine. Time CGI. Version 1.5. Stand Dokument: time.odt. Berger EDV Service Tulbeckstr München

Session Beans & Servlet Integration. Ralf Gitzel ralf_gitzel@hotmail.de

MSDE 2000 mit Service Pack 3a

RESTful Web. Representational State Transfer

18 Softwaresicherheit

DataTables LDAP Service usage Guide

Frankfurt,

Sichere Webapplikationen nach ONR oder Wer liest meine s?

Installationsbeschreibung Flottenmanager 7.1

Flash, Network und Facebook. Steven Mohr

Benachrichtigungsmöglichkeiten in SMC 2.6

Software- Handbuch

Sicherheit von Webapplikationen Sichere Web-Anwendungen

Professionelle Seminare im Bereich MS-Office

Die XML-Schnittstelle von FreelancerWelt.de Projektimport

SQL-Injection. Seite 1 / 16

2 Konfiguration von SharePoint

Protect 7 Anti-Malware Service. Dokumentation

Python SVN-Revision 12

SZENARIO. ausgeführt Command Injection: Einschleusen (Injizieren) bösartiger Befehle zur Kompromittierung der Funktionsschicht

Wo finde ich die Software? - Jedem ProLiant Server liegt eine Management CD bei. - Über die Internetseite

10.6 Programmier-Exits für Workitems

1. Loggen Sie sich mit Ihrem Benutzernamen in den Hosting-Manager (Confixx) auf Ihrer entsprechenden AREA ein. Automatische Wordpress Installation

Uni-Firewall. Absicherung des Überganges vom Hochschulnetz zum Internet am Wingate (Helmut Celina)

Anbindung des eibport an das Internet

SILVERBALL MAX. Technische Info V10 Update

goalio Documentation Release goalio UG

Web Grundlagen zum Spidering

LDAP Konfiguration nach einem Update auf Version 6.3 Version 1.2 Stand: 23. Januar 2012 Copyright MATESO GmbH

Applet Firewall und Freigabe der Objekte

MSXFORUM - Exchange Server 2003 > SMTP Konfiguration von Exchange 2003

Apparo Fast Edit Version im Vergleich zu Was ist neu?

Installation und Bedienung von vappx

App Entwicklung mit dem Android SDK

Web Services stellen eine Integrationsarchitektur dar, die die Kommunikation zwischen verschiedenen Anwendungen

Dynamisches SQL. Folien zum Datenbankpraktikum Wintersemester 2009/10 LMU München

SEMINAR Modifikation für die Nutzung des Community Builders

Informatik 12 Datenbanken SQL-Einführung

Datensicherheit. Vorlesung 5: Sommersemester 2015 h_da. Heiko Weber, Lehrbeauftragter

Einrichtung Secure-FTP

6.9 Java Server Pages

8. Workshop - Internetarchivierung

Sicherheit in Client/Server-Umgebungen

Typo3 - Schulung: Fortgeschrittene I an der Hochschule Emden/Leer

Universität Zürich Informatikdienste. SpamAssassin. Spam Assassin Go Koordinatorenmeeting 27. April

Registrierungsprozess des Boardgeräts (OBU) Inhalt Registrierung auf der Online-Benutzeroberfläche HU-GO

Facebook I-Frame Tabs mit Papoo Plugin erstellen und verwalten

Installation des edu- sharing Plug- Ins für Moodle

Enterprise Applikation Integration und Service-orientierte Architekturen. 09 Simple Object Access Protocol (SOAP)

Zugriff auf Daten der Wago über eine Webseite

Inhalt. 1 Einleitung AUTOMATISCHE DATENSICHERUNG AUF EINEN CLOUDSPEICHER

Online Termine in die eigene Facebook Seite integrieren

Dokumentation Externe Anzeige von Evento Web Dialogen

JSP vs. PHP. Ein persönlicher Vergleich. EQUIcon Software GmbH Jena, Jörg Spilling Frankfurter Treffen Agenda

Howto. Einrichten des TREX Monitoring mit SAP Solution Manager Diagnostics


Avira Browser-Schutz (Erkennungen) Kurzanleitung

Softwaretechnik Teil Webprogrammierung (HTML, PHP) SS2011

Migration Howto. Inhaltsverzeichnis

Transkript:

Paper: Automated Discovery of Parameter Pollution Vulnerabilities in Web Applications Referat von Georg Räß und Kevin Virmani Paper geschrieben von Marco Balduzzi,Carmen Torrano Gimenez,Davide Balzarotti und Engin Kirda verfügbar unter http://www.isoc.org/isoc/conferences/ndss/11/pdf/6_1.pdf

Inhalt Einführung Einordnung des Problems Problembeschreibung HTTP Parameter Pollution Ablauf eines Angriffs Client Side Angriff Server Side Automatische Erkennung von Schwachstellen Modell Theorie Auswirkungen

Einführung Einordnung des Problems Von statischen Inhalten zu dynamischen Daher meist viele Schichten involviert

Einführung Einordnung des Problems stateless HTTP Protokoll -> stateful Anwendung 60% der Angriffe auf die Server bzw. Datenbankebene Datenbankschicht (Server) SQL Injection, LDAP Injection, XML Injection, XPath Injection Command Injection, etc. Anwendungsschicht (Server) Remote File Inclusion, etc. Anwendungsschicht (Client) Cross Site Scripting (XSS), Cookie Stealing, Flash Exploits etc.

Einführung Einordnung des Problems Gegenmaßnahmen Web Application Firewall Sanitization auf Anwendungsebene (zb php filter) Static code analysis Neuartige Angriffe HTTP Parameter Pollution

Einführung Einordnung des Problems HTTP Parameter Pollution Server Side und Client Side Angriffe möglich Der Angreifer kann existierende Variablen überschreiben aber auch neue injizieren

Einführung Problembeschreibung Uniform Resource Identifier laut RFC 3986 Query (Seite 23) : The query component contains non-hierarchical data that, along with data in the path component (Section 3.3), serves to identify a resource within the scope of the URI's scheme and naming authority (if any). The query component is indicated by the first question mark ("?") character and terminated by a number sign ("#") character or by the end of the URI. http://example.com/direcotry/script.jsp?var1=value1#anchor3 HTTP Protokoll erlaubt, dass der selbe Parameter zweimal verwendet wird. Was passiert dann? http://example.com/direcotry/script.jsp?usr=bob&usr=alice

Einführung Problembeschreibung Verarbeitet beide q GET Parameter

Einführung Problembeschreibung sk GET Parameter verantwortlich für dargestellte Unterseite Nur letzter Parameter wird ausgewertet (ff = find friends)

Einführung Problembeschreibung Parameter Handling abhängig von Technologie Dieses Verhalten ist an sich nicht schlimm, wenn es dem Entwickler bewusst ist!

HTTP Parameter Pollution Ablauf Client Side Attacke Manipulation einer Wahl URL: http://host/election.jsp?poll_id=4568 Mit 2 Links auf der Website <a href="vote.jsp?poll_id=4568&candidate=white >Vote for Mr. White</a> <a href="vote.jsp?poll_id=4568&candidate=green >Vote for Mrs. Green</a> Analyse Parameter Aufruf Manipulierte URL à falsche Wahl Manipulierte URL unterschieben Cracker Opfer

HTTP Parameter Pollution Ablauf Client Side Manipulierte URL http://host/election.jsp?poll_id=4568%26candidate%4dgreen (http://host/election.jsp?poll_id=4568&candidate=green) Aufgerufene jsp Website gibt aus: <a href=vote.jsp?poll_id=4568&candidate=green&candidate=white>vote for Mr. White</a> <a href=vote.jsp?poll_id=4568&candidate=green&candidate=green>vote for Mrs. Green</a> Gewinner ist immer Mr. Green!

HTTP Parameter Pollution Weiterführende Beispiele Weitere typische Beispiele für Client Side Attacken Löschen von User Accounts, Emails, etc Manipulationen in sozialen Netzen Posten / Kaufen / Agieren unter fremdem Namen Manipulation von Abstimmungen Typische Beispiele für Server Side Attacken Auslesen von Datenbankinhalten und Dateiinhalten Ändern von Datenbankinhalten

HTTP Parameter Pollution Ablauf Server Side Angriff Beispiel einer Server Side Attacke (php) <?php! $get_param1 = $_GET[ amount ];! $get_param2 = $_GET[ recipient ];!! funtion execreq($get_param1, $get_param2){! $link = "http://abc.com/index.php?action=transfer&amount=".! $get_param1."&recipient=".$get_param2;! include($link); "! }!?>!! Wie wäre hier ein Server Side Angriff möglich?

HTTP Parameter Pollution Ablauf Server Side Angriff o http://abc.com/index.php?amount=1000&recipient=mat %26action%3dwithdraw o action=transfer (aus Server Code) wird mit action=withdraw überschrieben o Anstatt Geld zu überweisen, wird Geld abgebucht o Abhängig von der Reihenfolge der Auswertung und abhängig von der eingesetzten Technik

HTTP Parameter Pollution Das & URL Encode à %26 Double URL Encode à %2526 UTF-8 (2 byte) à %c0%a6 UTF-8 (java style) à \uc0a6 HTML Entitiy à & HTML Entity number à & Unicode URL Encode à %u0026

Automatische Erkennung von Schwachstellen Modell PAPAS Parameter Pollution Analysis System Kann auf HPP Verwundbarkeit scannen

Automatische Erkennung von Schwachstellen P-Scan Theorie Scanner der auf Verdoppelung von vorhandenen Parametern prüft Seiteninhalt analysieren und Parameter merken Page 0 (orginal) à app.php?par1=val1 Page 1 (test 1) à app.php?par1=newval1 Page 2 (test 2) à app.php?par1=val1&par1=newval1 Tests Identitätstest Page0 == Page1 == Page2 à Parameter uneffektiv Base Test Page0 == Page1 oder Page1==Page2 Join Test Sucht Vorkommnisse von Kombinationen Fuzzy Test Prüft Auswertungsreihenfolge mit Fuzzy Logik Error Test Prüft ob Error zurückgegeben wird (Datenbank)

Automatische Erkennung von Schwachstellen Theorie V-Scan Scanner der Einfügen neuer Parameter prüft Alle Parameter einzeln aufrufen mit beliebigem Var/Value Paar Zb app.php?par1=val1%26foo%3dbar Anschließend Seiteninhalt auf Vorkommnisse von foo=bar hin überprüfen,wenn Vorhanden, dann ist par1 zum injizieren geeignet V-Scan extrahiert P URL = [P U1,P U2,P U3...] à Vorkommnisse Parameter in URL P BODY = [P B1,P B2,P B3...] à Vorkommnisse Parameter im <body>

Automatische Erkennung von Schwachstellen Theorie V-Scan P A = P URL P BODY Schnittmenge aller Parameter die im Body und in der URL vorkommen P B = p p P URL p P BODY URL Parameter die nicht im Body vorkommen P C = p p P URL p P BODY Parameter die im Body aber nicht in der URL vorkommen V-Scan injiziert Parameter in der Reihenfolge P A P B P C

Auswirkungen

HTTP Parameter Pollution Speziell HPP Technik kann benutzt werden um WAF und SQL Injection Filter erfolgreich zu umgehen!! Beispiel : /index.aspx?page=select 1,2,3 from table where id=1 Wird erkannt und abgewehrt /index.aspx?page=select 1&page=2,3 from table where id= Wird eventuell NICHT erkannt da die Parameter eventuell nur einzeln auf SQL Injections überprüft werden