LFI2RCE Via compress.zlib + PHP_STREAM_PREFER_STUDIO + Path Disclosure
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
compress.zlib://
i PHP_STREAM_PREFER_STDIO
Datoteka otvorena koristeći protokol compress.zlib://
sa oznakom PHP_STREAM_PREFER_STDIO
može nastaviti da piše podatke koji kasnije stignu do veze u istu datoteku.
To znači da poziv kao što je:
Poslaće zahtev tražeći http://attacker.com/file, zatim server može odgovoriti na zahtev sa validnim HTTP odgovorom, zadržati vezu otvorenom i poslati dodatne podatke nešto kasnije koji će takođe biti zapisani u datoteku.
Možete videti te informacije u ovom delu php-src koda u main/streams/cast.c:
Ovaj CTF je rešen korišćenjem prethodnog trika.
Napadač će naterati server žrtve da otvori vezu čitajući datoteku sa servera napadača koristeći compress.zlib
protokol.
Dok ova veza postoji, napadač će izvršiti eksfiltraciju putanje do privremene datoteke koja je kreirana (server je otkrio).
Dok je veza još uvek otvorena, napadač će iskoristiti LFI učitavajući privremenu datoteku koju kontroliše.
Međutim, postoji provera na web serveru koja sprečava učitavanje datoteka koje sadrže <?
. Stoga, napadač će iskoristiti Race Condition. U vezi koja je još uvek otvorena, napadač će poslati PHP payload NAKON što je webserver proverio da li datoteka sadrži zabranjene karaktere, ali PRE nego što učita njen sadržaj.
Za više informacija pogledajte opis Race Condition i CTF na https://balsn.tw/ctf_writeup/20191228-hxp36c3ctf/#includer
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)