LFI2RCE Via temp file uploads

Support HackTricks

Check the full details of this technique in https://gynvael.coldwind.pl/download.php?f=PHP_LFI_rfc1867_temporary_files.pdf

PHP File uploads

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 upakuaji 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.

Alert ya Usalama: Washambuliaji, wakijua eneo la faili za muda, wanaweza kutumia udhaifu wa Local File Inclusion ili kutekeleza msimbo kwa kufikia faili wakati wa upakuaji.

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, bits 16 za chini pekee ndizo zinatumika, 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:

http://site/vuln.php?inc=c:\windows\temp\php<<

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, ujasiri 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.

Last updated