Codepurple Logo Codepurple Logo Codepurple Logo
  • Dienstleistungen
  • Blog
  • Über uns
  • Termin vereinbaren
  • de
  • /

  • en
  • Sprache:

  • de
  • /

  • en

Datenleck über phpinfo() - Teil 1/2

Veröffentlicht am: 17. November 2022
Autor: Thomas Federer

Weiter geht es in der Serie der Scans der .ch und .li Domains. Dieses Mal untersuchten wir mögliche Datenlecks über phpinfo, was wiederum spannende Erkenntnisse zu Tage brachte. Bei diesem Scan wurden 2.6 Millionen Domains überprüft.

Weitere Analysen von Codepurple aller .ch und .li Domains aus dieser Serie zu fehlerhaften Sicherheitskonfigurationen oder Datenlecks:

  • SPF / DMARC Analyse von .ch und .li Domains
  • Öffentliche .git Ordner
  • Öffentliche .env-Dateien
  • Datenleck via .DS_Store Dateien

Zu folgenden Beiträgen gibt es ein Update:

  • Update: Öffentliche .git Ordner
  • Update: Öffentliche .env-Dateien
  • Update: Datenleck via .DS_Store Dateien

Was ist PHP und was hat es sich mit der phpinfo() auf sich?

Public php info

PHP ist eine Programmiersprache, welche bei Webapplikationen weit verbreitet ist. Ursprünglich wurde Facebook mit PHP geschrieben. Auch die bekannte Blog-Plattformen Wordpress wird in PHP entwickelt. Praktisch jeder Webhoster unterstützt PHP auf seinen Servern.

Phpinfo() ist eine Funktion von PHP, welche Informationen zur Konfiguration von PHP liefert (Offizielle Dokumentation: https://www.php.net/manual/en/function.phpinfo.php). Für Entwickler können diese Informationen hilfreich sein. Dabei sieht man, welche Module installiert sind, welche Versionen davon verwendet werden und vieles mehr. Viele Entwickler verwenden diese Funktion, ist man jedoch unaufmerksam landen solche Dateien schnell auf den produktiven Servern. Oft tragen sie den Namen wie info.php, phpinfo.php, php.php oder ähnlich.

Public php info

Gefundene Dateien

Legende

Sicherheitsbedenken in Zusammenhang mit der phpinfo() Funktion

Die meisten Informationen aus der phpinfo Funktion sind harmlos, können Angreifer aber Hinweise geben, welche Angriffe funktionieren könnten. Meist sind dies Angriffe auf veraltete Module, welche via phpinfo schnell ersichtlich sind. Da phpinfo auch Informationen zum Environment, in welchem der PHP-Prozess läuft gibt, können aber auch sehr sensitive Daten wie Benutzernamen und Passwörter für Datenbanken, API-Keys oder andere Secrets eingesehen werden. Man muss sich deshalb immer bewusst sein, welche Informationen über die phpinfo Funktion sichtbar sind.

Analyse unseres Scans

Bei diesem Scan haben wir 2'607'439 Domains gescannt. Dabei haben wir 45'850 phpinfo Dateien gefunden (1.75%).

PHP-Versionen

Die erste Version von PHP erschien im Jahre 1995, vor 27. Jahren. Die neuste Version ist 8.1. PHP 8.2 soll noch dieses Jahr veröffentlicht werden. Wir stellten fest, dass über die Hälfte der Webserver PHP 7.4 einsetzt. PHP 7.4 erreicht Ende November 2022 das offizielle Lebensende und wird dann nicht mehr mit Sicherheitsupdates versorgt. Somit kommen ~24'000 (über 54%) Domains mit veralteter PHP-Version hinzu. Wenn Sie PHP verwenden, schauen Sie bei Ihrem Hoster nach, ob Sie eine aktuelle PHP-Version aktivieren können und Ihre Webapplikation mit dieser Version kompatibel ist und planen Sie die Umstellung.

PHP Versionen

Legende

ImageMagick

ImageMagick ist eine Library, welche oft von PHP verwendet wird, um Bilder zu manipulieren. Leider gab es in den älteren Versionen dieser Library einige schwerwiegende Sicherheitslücken. Bei einem guten Drittel der gefundenen phpinfo-Informationen war die ImageMagick-Version ersichtlich. Dabei fällt auf, dass knapp 90% eine veraltete Version installiert haben.

Imagemagick Versionen

Legende

Unsichere PHP-Konfigurationen

Error Reporting

Wird PHP auf einem produktiven Server eingesetzt, so sollten einige Konfigurationen angepasst werden. So sollte zum Beispiel das Error-Reporting ausgeschaltete werden, den über die Fehlerberichte, kann ein Angreifer an wertvolle Informationen gelangen.

display-errors

Legende

Gefährliche Funktionen

In PHP gibt es einige Funktionen, welche als gefährlich eingestuft werden. Dies sind Funktionen, welche es erlauben Code auszuführen (Bsp. exec()) oder System-Commands zu starten. PHP bietet die Möglichkeit solche Funktionen zu deaktivieren. Knapp 1 Promille der PHP-Konfigurationen nutz diese Möglichkeit und deaktiviert alle gefährlichen PHP-Funktionen.

disabled-functions

Legende

Weitere sicherheitskritische Einstellungen

In PHP gibt es noch weitere Einstellungen, welche man sehr bewusst einsetzen muss. So zum Beispiel, ob Dateien von externen Quellen geöffnet werden dürfen oder ob Includes von externen Quellen geladen werden dürfen. Die wenigsten Konfigurationen machen hier Einschränkungen.

Folgend die Statistiken für folgende Einstellungen:

  • allow-url-fopen
  • allow-url-include
  • open-basedir

allow-url-fopen

Legende

allow-url-include

Legende

open-basedir

Legende

Server Versionen

Über phpinfo können auch die Server-Versionen herausgefunden werden. Es gibt drei Webserver, welche am meisten verbreitet sind: IIS von Microsoft, Apache, nginx. Dann gibt es noch viele weitere, welche ein Nischendasein führen.

Es ist Best-Practice, dass die Server so eingestellt werden, dass sie ihre Version nicht preisgeben. Deshalb ist diese Statistik mit Vorsicht zu geniessen, den ein Grossteil der aktuellen Server-Version sind korrekt konfiguriert. Es ist jedoch eine grosse Anzahl an Webserver online, welche stark veraltet oder nicht auf dem neusten Stand sind.

Ein Grossteil der eingesetzten Webserver-Versionen ist auch hier veraltet

Server

Legende

Openssl Versionen

OpenSSL ist ein robustes Toolkit für allgemeine Kryptografie und sichere Kommunikation. Openssl wird an vielen Orten als Kryptografie-Library eingesetzt. So zum Beispiel um Private- und Public-Keys zu generieren oder bei der Verschlüsselung des Webverkehrs. Auch bei dieser Library werden immer wieder kritische Sicherheitslücken bekannt. Eine der bekanntesten Lücken, welche im Jahre 2014 publik wurde erhielt den Namen heartbleed (https://heartbleed.com). Deshalb ist es wichtig auch hier die aktuellste Version mit allen Sicherheitspatches zu verwenden. Informationen aus phpinfo() zeigen, dass ein guter Drittel veralteter Versionen verwendet werden.

OpenSSL Versionen

Legende

Fazit

Es sind sehr viele Informationen über phpinfo abrufbar. Leider werden noch sehr viele veraltete Versionen von PHP, von Libraries oder von Webservern eingesetzt. Was wir sonst noch gefunden haben oder wie die Informationen von phpinfo() sonst noch von Angreifern ausgenutzt werden können und wie man sich schützen kann, erfahren Sie im nächsten Blogbeitrag, welcher in einer Woche erscheint.

Weitere Blog-Beiträge

Folgende Blog-Beiträge könnten Sie interessieren:

  • Ungewollte Datenlecks (online und offline)
  • Update: Öffentliche .env-Dateien
  • Typosquatting

Ein 8-stelliges Passwort mit Nummern, Gross- und Kleinbuchstaben und Sonderzeichen kann in unter einer Stunde geknackt werden.

Quelle: Hive Systems

Haben Sie Fragen oder wünschen Sie einen Termin?

Kathrin Müller freut sich auf Ihre Kontaktaufnahme und organisiert je nach Bedürfnis gerne ein Meeting.

Kontakt

nanio GmbH (Codepurple)
Moosweg 24
5606 Dintikon

+41 79 823 45 30
rhino@codepurple.ch

Folgen Sie uns

Instagram Twitter Linekdin

Impressum| Datenschutz| © Codepurple 2023. Alle Rechte vorbehalten