<summary><strong>Lernen Sie AWS-Hacking von Grund auf mit</strong><ahref="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
* Wenn Sie Ihr **Unternehmen in HackTricks bewerben möchten** oder **HackTricks als PDF herunterladen möchten**, überprüfen Sie die [**ABONNEMENTPLÄNE**](https://github.com/sponsors/carlospolop)!
* Holen Sie sich das [**offizielle PEASS & HackTricks-Merchandise**](https://peass.creator-spring.com)
* Entdecken Sie [**The PEASS Family**](https://opensea.io/collection/the-peass-family), unsere Sammlung exklusiver [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Treten Sie der** 💬 [**Discord-Gruppe**](https://discord.gg/hRep4RUj7f) oder der [**Telegram-Gruppe**](https://t.me/peass) bei oder **folgen** Sie uns auf **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Teilen Sie Ihre Hacking-Tricks, indem Sie PRs an die** [**HackTricks**](https://github.com/carlospolop/hacktricks) und [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) Github-Repositories senden.
Dies ist im Wesentlichen eine Zusammenfassung von [https://swarm.ptsecurity.com/exploiting-arbitrary-object-instantiations/](https://swarm.ptsecurity.com/exploiting-arbitrary-object-instantiations/)
Die Erstellung neuer beliebiger Objekte, wie z.B. `new $_GET["a"]($_GET["a"])`, kann zu Remote Code Execution (RCE) führen, wie in einem [**Writeup**](https://swarm.ptsecurity.com/exploiting-arbitrary-object-instantiations/) detailliert beschrieben. Dieses Dokument zeigt verschiedene Strategien zur Erreichung von RCE auf.
Die Syntax `new $a($b)` wird verwendet, um ein Objekt zu instanziieren, wobei **`$a`** den Klassennamen darstellt und **`$b`** das erste Argument ist, das an den Konstruktor übergeben wird. Diese Variablen können aus Benutzereingaben wie GET/POST stammen, wo sie Zeichenketten oder Arrays sein können, oder aus JSON, wo sie als andere Typen vorliegen können.
**Autoloading-Funktionen** können ausgenutzt werden, wenn keine solchen Klassen direkt zugänglich sind. Diese Funktionen laden automatisch Klassen aus Dateien, wenn sie benötigt werden, und werden mit `spl_autoload_register` oder `__autoload` definiert:
Fehlen benutzerdefinierter Klassen oder Autoloader, können **integrierte PHP-Klassen** für RCE ausreichen. Die Anzahl dieser Klassen variiert je nach PHP-Version und Erweiterungen zwischen 100 und 200. Sie können mit `get_declared_classes()` aufgelistet werden.
Interessante Konstruktoren können mithilfe der Reflection-API identifiziert werden, wie im folgenden Beispiel und dem Link [https://3v4l.org/2JEGF](https://3v4l.org/2JEGF) gezeigt.
Der Konstruktor der PDO-Klasse ermöglicht Verbindungen zu Datenbanken über DSN-Zeichenketten und ermöglicht potenziell die Erstellung von Dateien oder andere Interaktionen:
Versionen von PHP bis einschließlich 5.3.22 und 5.4.12 waren anfällig für XXE-Angriffe über die Konstruktoren `SoapClient` und `SimpleXMLElement`, abhängig von der Version von libxml2.
Bei der Analyse der **Abhängigkeiten eines Projekts** wurde festgestellt, dass **Imagick** für die **Befehlsausführung** genutzt werden kann, indem neue Objekte instanziiert werden. Dadurch ergeben sich Möglichkeiten zur Ausnutzung von Schwachstellen.
Es wurde festgestellt, dass der VID-Parser Inhalte in einem beliebigen angegebenen Pfad im Dateisystem schreiben kann. Dadurch kann eine PHP-Shell in einem webzugänglichen Verzeichnis platziert werden, um Remote Code Execution (RCE) zu erreichen.
Es ist zu beachten, dass PHP hochgeladene Dateien vorübergehend in `/tmp/phpXXXXXX` speichert. Der VID-Parser in Imagick kann mit dem **msl**-Protokoll Platzhalter in Dateipfaden verarbeiten, um die temporäre Datei an einen ausgewählten Ort zu übertragen. Diese Methode bietet einen zusätzlichen Ansatz, um beliebige Dateien im Dateisystem zu schreiben.
Eine Methode, die in der [**ursprünglichen Beschreibung**](https://swarm.ptsecurity.com/exploiting-arbitrary-object-instantiations/) beschrieben wird, beinhaltet das Hochladen von Dateien, die einen Serverabsturz verursachen, bevor sie gelöscht werden. Durch Brute-Force des Namens der temporären Datei wird es Imagick ermöglicht, beliebigen PHP-Code auszuführen. Diese Technik ist jedoch nur in einer veralteten Version von ImageMagick wirksam.
<summary><strong>Lernen Sie AWS-Hacking von Grund auf mit</strong><ahref="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
* Wenn Sie Ihr **Unternehmen in HackTricks bewerben möchten** oder **HackTricks als PDF herunterladen** möchten, überprüfen Sie die [**ABONNEMENTPLÄNE**](https://github.com/sponsors/carlospolop)!
* Holen Sie sich das [**offizielle PEASS & HackTricks-Merchandise**](https://peass.creator-spring.com)
* Entdecken Sie [**The PEASS Family**](https://opensea.io/collection/the-peass-family), unsere Sammlung exklusiver [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Treten Sie der** 💬 [**Discord-Gruppe**](https://discord.gg/hRep4RUj7f) oder der [**Telegram-Gruppe**](https://t.me/peass) bei oder **folgen** Sie uns auf **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Teilen Sie Ihre Hacking-Tricks, indem Sie Pull Requests an die** [**HackTricks**](https://github.com/carlospolop/hacktricks) und [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub-Repositories senden.