Was sind Dateieinschluss und Ausführung willkürlichen Codes? - MalCare

Veröffentlicht: 2023-04-13

Dateieinschluss und willkürliche Codeausführung: Anfang dieses Monats wurde eine auf WordPress aufgebaute Flugticket- Website gehackt, wodurch die persönlichen Daten von Hunderttausenden von Besuchern offengelegt wurden. In einem früheren Beitrag zum Thema „Warum Hacker hacken“ haben wir alle Gründe besprochen, warum Hacker hacken, einschließlich Datendiebstahl, Versenden von Spam-E-Mails, sie könnten sogar Black-Hat-SEO-Techniken verwenden, um ihre eigenen Produkte zu bewerten (empfohlene Lektüre – Pharma-Hack) usw.

Zu lernen, wie Hacker eine Website hacken, ist ein Schlüssel, um sie zu verhindern, weshalb wir in einem früheren Artikel die häufigsten Hack-Angriffe auf WordPress-Websites aufgelistet haben.

Wenn wir über gängige Hack-Angriffe sprechen, denken Sie wahrscheinlich an Brute-Force-Angriffe. Aber wussten Sie, dass das Einfügen von Dateien und die Ausführung willkürlichen Codes auch zu den häufigsten Hackangriffen auf WordPress-Websites gehören? In diesem Beitrag gehen wir etwas tiefer auf diese Angriffe ein, um sie im Detail zu verstehen.

Um zu verstehen, wie diese Angriffe funktionieren, müssen Sie zunächst wissen, dass es sich um PHP-Dateien handelt.Sie müssen sich fragen, warum? Dies liegt daran, dass sowohl File Inclusion- als auch Arbitrary Code Execution-Angriffe die Verwendung von PHP-Dateien beinhalten.

Aber was ist eine PHP-Datei? Denken Sie an einen Küchenschrank. Im Inneren des Schranks befinden sich eine Reihe von Gegenständen wie Zucker, Salz, Gewürze, Utensilien usw. Jeder dieser Gegenstände hat einen bestimmten Zweck, um in der Küche zu dienen.Eine PHP-Datei ist ein Schrank und die Codes in den Dateien sind die Elemente, die die Ausführung bestimmter Funktionen ermöglichen, die vom Hacker gewünscht werden.Aus diesem Grund bevorzugen Hacker das Hochladen einer PHP-Datei gegenüber anderen Dateien wie beispielsweise JPEG- oder PDF-Dateien. JPEG- und PDF-Dateien sind nicht ausführbar, dh Hacker können mit diesen Dateien keine Funktion ausführen. Man kann sie nur lesen (dh ansehen). Sie können nicht verwendet werden, um Änderungen an einer gehackten Website vorzunehmen.

Ein Hacker, der eine PHP-Datei auf Ihren Website-Server hochgeladen hat, kann damit alles auf Ihrer Website tun. Und aus diesem Grund werden PHP-Dateien verwendet, um File Inclusion- und Arbitrary Code Execution-Angriffe auszuführen.

Was ist ein Dateieinschlussangriff?

Der beste Weg, einen komplexen Website-Angriff wie diesen zu verstehen, besteht darin, ein reales Szenario zu veranschaulichen. Angenommen, Sie betreiben eine Website für Ihre Institution und die Website heißt college.com. Sie gestatten einigen Schülern den Zugriff auf die Website, damit sie Bilder posten können, die während einer kürzlichen College-Veranstaltung aufgenommen wurden. Jemand missbraucht den von Ihnen gewährten Zugang und lädt eine schädliche PHP-Datei (mit dem Namen hack.php) auf die Website hoch. Ziel ist es, die Kontrolle über die College-Websites zu erlangen. Wenn der Schüler die schädliche PHP-Datei hochlädt, wird sie standardmäßig im Upload-Ordner gespeichert.Wer die Grundstruktur von WordPresskennt, weiß, wohin eine hochgeladene Datei gehört.

Dateieinschluss und Ausführung willkürlichen Codes
Jeder Upload, der kein Design oder Plugin ist, wird im Upload-Ordner gespeichert. Wer den Aufbau von WordPress kennt, weiß, wo der Upload-Ordner zu finden ist. Für diejenigen, die es nicht wissen, hier befindet sich der Upload-Ordner. Öffnen Sie den Dateimanager im Webhosting-cPanel und gehen Sie dann zu Public_html > wp-content > uploads.

Die Datei verhält sich wie eine Tür, die es dem Hacker ermöglicht, aus der Ferne mit der Datei zu interagieren. Beachten Sie, dass der Hacker immer noch keine Kontrolle über die Website hat, er hat nur ein Fenster für die Kommunikation. Stellen Sie sich zum besseren Verständnis vor, Person A möchte in ein Land gehen, in dem es ihm nicht erlaubt ist. Also schickt er einen Agenten, Person B. Person A ist der Hacker, das Land steht für die College-Website und Person B ist die Datei hack.php.

Auf die College-Website hochgeladene PHP-Dateien —-> Die Datei wird auf dem Website-Server gespeichert

Person B ist nur in wenigen Dingen geschult und kann nur so viel tun. Also muss die Person A ihn anweisen, was als nächstes zu tun ist. Auf die gleiche Weise erstellt die PHP-Datei ein Kommunikationsfenster und wartet dann auf weitere Befehle des Hackers.

Nehmen wir an, dass die hack.php so erstellt wurde, dass mehr Dateien auf die Website hochgeladen werden können. Der Hacker erstellt eine Datei (namens control.php), die er mithilfe von hack.php hochlädt, die bereits auf dem Website-Server vorhanden ist. Die neue Datei – control.php – ermöglicht dem Hacker vollen Zugriff auf die Website. Er verwendet das von der Datei hack.php bereitgestellte Fenster, um die Datei control.php auf die Site hochzuladen.Dieser Prozess des Hochladens der Datei control.php unter Verwendung einer Datei (hack.php), die bereits auf dem Website-Server vorhanden ist, wird Local File Inclusion genannt .

Ein großartiges Beispiel für die Ausführung lokaler Dateien ist die Schwachstelle, die im Easy Forms for MailChimp WordPress-Plugin (v 6.0.5.5) beobachtet wurde . Mit dem MailChimp-Plug-in können Website-Eigentümer ihrer WordPress-Site verschiedene Arten von Formularen hinzufügen. Eine Schwachstelle ermöglichte es Hackern, eine PHP-Datei mithilfe des MailChimp-Formulars auf einen Website-Server hochzuladen.Sobald die Datei auf dem Website-Server gespeichert ist, konnten Hacker mit ihnen kommunizieren und Codes ausführen, die es ihnen ermöglichen, den Server zu kontrollieren oder die Website auf vielfältige Weise zu beschädigen.

Hier ist ein Szenario: Die College-Website hat eine Firewall installiert und daher kann der Hacker die control.php nicht hochladen. Während er keine weitere separate Datei hochladen kann, kann er eine Datei "einschließen". Das bedeutet, dass er eine Datei in die Datei hack.php einfügen kann, die bereits auf dem Server der College-Website vorhanden ist. Wenn der Hacker die Datei control.php hochladen konnte, würde der Website-Server die Datei lesen und den darin enthaltenen Code ausführen, der es dem Hacker ermöglicht, alles zu tun, was er will. Da er die Datei jedoch nicht hochladen kann, muss er andere Wege finden, damit der Server die Datei control.php lesen kann. Ein von einem Hacker erstellter Pfad ist online verfügbar und der Server der College-Website sollte ihn lesen können. Daher erstellt der Hacker einen Pfad und stellt ihn online zur Verfügung, damit der Server der College-Website ihn lesen kann. Der Server beginnt dann mit der Ausführung des aus dem Pfad abgerufenen Codes, und da der Code so geschrieben ist, dass der Hacker die vollständige Kontrolle über die Website hat, kontrolliert der Hack jetzt die College-Website. Dieser Prozess, bei dem der Server eine Remote-Datei liest, wird Remote File Inclusion genannt.

Dateieinschluss und Ausführung willkürlichen Codes
Ein Beispiel, das zeigt, wie der TimThumb-Angriff stattfand

Der Fall der TimThumb-Schwachstelle ist ein beliebtes Beispiel für Remote File Inclusion. TimThumb war ein WordPress-Plugin, das die einfache Bearbeitung von Bildern auf einer WordPress-Site ermöglichte. Es ermöglichte jedem, Bilder zu verwenden, die von Websites zum Teilen von Bildern wie imgur.com und flickr.com bezogen wurden. TimThumb erkennt imgur als gültige Website (oder auf der weißen Liste). Hacker, die sich dieses Kriterium zunutze machen, erstellen Dateien mit URLs, die eine gültige Website wie http://www.imgur.com.badsite.com erwähnen.Wenn sie eine schädliche Datei mit einer URL wie der oben erwähnten hochladen, wird dem Plugin vorgegaukelt, dass die Datei von einer gültigen Website stammt.Und es ermöglicht das Hochladen einer schädlichen Datei auf den Server der Website. Dieser ganze Vorgang des Einschließens einer bösartigen Datei von außerhalb des Website-Servers durch Ausnutzen einer Schwachstelle in einem Plugin ist Remote File Inclusion. Nachdem die schädliche PHP-Datei auf dem Website-Server gespeichert wurde, können die Hacker mit ihr kommunizieren, um ihre gewünschten Aktionen auszuführen.

Was ist ein Arbitrary Code Execution Attack?

Nachdem wir nun wissen, was Remote- und Local File Inclusion ist, wollen wir weitermachen und versuchen zu verstehen, was Arbitrary Code Execution ist. File Inclusion und willkürlicher Code-Inclusion sind miteinander verknüpft. In jedem Fall von File Inclusion zielen die Hacker darauf ab, einen beliebigen Code auf der Website auszuführen. Gehen wir zurück zum Beispiel der Local File Inclusion, wo der Hacker eine hack.php auf die College-Website hochgeladen hat und dann control.php mit Hilfe von hack.php hochgeladen hat.Der Ausdruck Arbitrary Code Execution ist eine Beschreibung der Fähigkeit eines Hackers, einen beliebigen Befehl seiner Wahl auf einer gehackten Website auszuführen.Sobald die PHP-Dateien (hack.php und control.php) auf dem Website-Server vorhanden sind, kann der Hacker beliebigen Code ausführen. Dieser Prozess der Ausführung von beliebigem Code aus den von ihm hochgeladenen Dateien wird als Arbitrary Code Execution bezeichnet.
Hacks sind komplex. In diesem Beitrag haben wir versucht, es so einfach zu erklären, aber wenn es einen Teil gibt, der für Sie keinen Sinn ergibt, bitten wir unsere Leser dringend, uns zu schreiben . Im nächsten Beitrag diskutieren wir einen weiteren häufigen Hackerangriff auf eine WordPress-Seite namens Cross-Site Scripting (XSS). Schau mal.