{{#include ../../banners/hacktricks-training.md}} **Proverite sve detalje ove tehnike na [https://gynvael.coldwind.pl/download.php?f=PHP_LFI_rfc1867_temporary_files.pdf](https://gynvael.coldwind.pl/download.php?f=PHP_LFI_rfc1867_temporary_files.pdf)** ## **PHP Učitavanje fajlova** Kada **PHP** engine primi **POST zahtev** koji sadrži fajlove formatirane prema RFC 1867, generiše privremene fajlove za skladištenje učitanih podataka. Ovi fajlovi su ključni za rukovanje učitavanjem fajlova u PHP skriptama. Funkcija `move_uploaded_file` mora se koristiti za premestiti ove privremene fajlove na željenu lokaciju ako je potrebno trajno skladištenje nakon izvršenja skripte. Nakon izvršenja, PHP automatski briše sve preostale privremene fajlove. > [!NOTE] > **Bezbednosna upozorenje: Napadači, svesni lokacije privremenih fajlova, mogu iskoristiti ranjivost lokalnog uključivanja fajlova da izvrše kod pristupajući fajlu tokom učitavanja.** Izazov za neovlašćen pristup leži u predviđanju imena privremenog fajla, koje je namerno nasumično. #### Eksploatacija na Windows sistemima Na Windows-u, PHP generiše imena privremenih fajlova koristeći funkciju `GetTempFileName`, što rezultira obrascem poput `\
.TMP`. Važno je napomenuti:

- Podrazumevana putanja je obično `C:\Windows\Temp`.
- Prefiks je obično "php".
- `` predstavlja jedinstvenu heksadecimalnu vrednost. Ključno, zbog ograničenja funkcije, koristi se samo donjih 16 bita, što omogućava maksimalno 65,535 jedinstvenih imena sa konstantnom putanjom i prefiksom, što čini brute force izvodljivim.

Pored toga, proces eksploatacije je pojednostavljen na Windows sistemima. Osobina u funkciji `FindFirstFile` omogućava korišćenje džokera u putanjama lokalnog uključivanja fajlova (LFI). Ovo omogućava kreiranje putanje za uključivanje poput sledeće da locira privremeni fajl:
```
http://site/vuln.php?inc=c:\windows\temp\php<<
```
U određenim situacijama, može biti potrebna specifičnija maska (kao što su `php1<<` ili `phpA<<`). Može se sistematski pokušati sa ovim maskama kako bi se otkrio otpremljeni privremeni fajl.

#### Eksploatacija na GNU/Linux sistemima

Za GNU/Linux sisteme, nasumičnost u imenovanju privremenih fajlova je robusna, što imenuje ni predvidljive ni podložne napadima silom. Dodatne informacije mogu se naći u referentnoj dokumentaciji.

{{#include ../../banners/hacktricks-training.md}}