tip
Učite i vežbajte AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Učite i vežbajte GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Podržite HackTricks
- Proverite planove pretplate!
- Pridružite se 💬 Discord grupi ili telegram grupi ili pratite nas na Twitteru 🐦 @hacktricks_live.
- Podelite hakerske trikove slanjem PR-ova na HackTricks i HackTricks Cloud github repozitorijume.
Proverite sve detalje ove tehnike na 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 <path>\<pre><uuuu>.TMP
. Važno je napomenuti:
- Podrazumevana putanja je obično
C:\Windows\Temp
. - Prefiks je obično "php".
<uuuu>
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.
tip
Učite i vežbajte AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Učite i vežbajte GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Podržite HackTricks
- Proverite planove pretplate!
- Pridružite se 💬 Discord grupi ili telegram grupi ili pratite nas na Twitteru 🐦 @hacktricks_live.
- Podelite hakerske trikove slanjem PR-ova na HackTricks i HackTricks Cloud github repozitorijume.