LFI2RCE Via temp file uploads
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)
Check the full details of this technique in https://gynvael.coldwind.pl/download.php?f=PHP_LFI_rfc1867_temporary_files.pdf
Wakati injini ya PHP inapokea POST request yenye faili zilizopangwa kulingana na RFC 1867, inaunda faili za muda kuhifadhi data zilizopakiwa. Faili hizi ni muhimu kwa usimamizi wa upakiaji wa faili katika skripti za PHP. Kazi ya move_uploaded_file
lazima itumike kuhamasisha faili hizi za muda kwenye eneo lililotakiwa ikiwa uhifadhi wa kudumu zaidi ya utekelezaji wa skripti unahitajika. Baada ya utekelezaji, PHP kwa otomatiki inafuta faili zozote za muda zilizobaki.
Tahadhari ya Usalama: Washambuliaji, wakijua eneo la faili za muda, wanaweza kutumia udhaifu wa Local File Inclusion ili kutekeleza msimbo kwa kufikia faili wakati wa upakiaji.
Changamoto ya kupata ufikiaji usioidhinishwa inapatikana katika kutabiri jina la faili la muda, ambalo limekusudiwa kuwa la bahati nasibu.
Utekelezaji kwenye Mifumo ya Windows
Katika Windows, PHP inaunda majina ya faili za muda kwa kutumia kazi ya GetTempFileName
, na kusababisha muundo kama <path>\<pre><uuuu>.TMP
. Kwa kuzingatia:
Njia ya kawaida ni kawaida C:\Windows\Temp
.
Kichwa ni kawaida "php".
<uuuu>
inawakilisha thamani ya kipekee ya hexadecimal. Kwa umuhimu, kutokana na kikomo cha kazi, ni sehemu ya chini ya bits 16 pekee zinazotumika, na kuruhusu majina 65,535 ya kipekee kwa njia na kichwa kisichobadilika, na kufanya nguvu ya kikatili iwezekane.
Zaidi ya hayo, mchakato wa utekelezaji unarahisishwa kwenye mifumo ya Windows. Upekee katika kazi ya FindFirstFile
inaruhusu matumizi ya wildcards katika njia za Local File Inclusion (LFI). Hii inaruhusu kuunda njia ya kujumuisha kama ifuatavyo ili kutafuta faili ya muda:
Katika hali fulani, maski maalum zaidi (kama php1<<
au phpA<<
) zinaweza kuhitajika. Mtu anaweza kujaribu maski hizi kwa mfumo wa kimfumo ili kugundua faili ya muda iliyopakiwa.
Ukatili kwenye Mifumo ya GNU/Linux
Kwa mifumo ya GNU/Linux, uhodari katika kutunga majina ya faili za muda ni thabiti, na kufanya majina hayo yasitabiriki wala kuwa na hatari ya mashambulizi ya nguvu. Maelezo zaidi yanaweza kupatikana katika nyaraka zilizorejelewa.