tip

Jifunze na fanya mazoezi ya AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Jifunze na fanya mazoezi ya GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Support HackTricks

Angalia maelezo kamili ya mbinu hii katika https://gynvael.coldwind.pl/download.php?f=PHP_LFI_rfc1867_temporary_files.pdf

Upakiaji wa Faili za PHP

Wakati injini ya PHP inapokea POST request inayojumuisha faili zilizopangwa kulingana na RFC 1867, inaunda faili za muda kuhifadhi data iliyopakiwa. 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.

note

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

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:

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

Katika hali fulani, maski maalum zaidi (kama php1<< au phpA<<) inaweza kuhitajika. Mtu anaweza kujaribu maski hizi kwa mfumo wa kawaida ili kugundua faili ya muda iliyopakiwa.

Ukatili kwenye Mifumo ya GNU/Linux

Kwa mifumo ya GNU/Linux, uhalisia 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 hati iliyorejelewa.

tip

Jifunze na fanya mazoezi ya AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Jifunze na fanya mazoezi ya GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Support HackTricks