hacktricks/pentesting-web/file-inclusion/lfi2rce-via-temp-file-uploads.md
2024-02-11 02:13:58 +00:00

3.5 KiB

Jifunze kuhusu kudukua AWS kutoka sifuri hadi shujaa na htARTE (HackTricks AWS Red Team Expert)!

Njia nyingine za kusaidia 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 ombi la POST lenye faili zilizopangwa kulingana na RFC 1867, inazalisha faili za muda mfupi kuhifadhi data iliyounganishwa. Faili hizi ni muhimu kwa kushughulikia upakiaji wa faili katika hati za PHP. Kazi ya move_uploaded_file lazima itumiwe kuhamisha faili hizi za muda mfupi kwenye eneo lililotaka ikiwa uhifadhi endelevu zaidi ya utekelezaji wa hati unahitajika. Baada ya utekelezaji, PHP kiotomatiki hufuta faili za muda mfupi zilizobaki.

{% hint style="info" %} Tahadhari ya Usalama: Wadukuzi, wakiwa na ufahamu wa eneo la faili za muda mfupi, wanaweza kutumia udhaifu wa Uingizaji wa Faili za Ndani (LFI) kutekeleza nambari kwa kupata faili wakati wa upakiaji. {% endhint %}

Changamoto ya kupata ufikiaji usiohalali iko katika kutabiri jina la faili ya muda mfupi, ambayo imepangwa kwa makusudi.

Udukuzi kwenye Mifumo ya Windows

Kwenye Windows, PHP inazalisha majina ya faili za muda mfupi kwa kutumia kazi ya GetTempFileName, ikitoa muundo kama <njia>\<pre><uuuu>.TMP. Kwa kuzingatia:

  • Njia ya chaguo-msingi kawaida ni C:\Windows\Temp.
  • Kiambishi kawaida ni "php".
  • <uuuu> inawakilisha thamani ya hexadecimal ya pekee. Kwa umuhimu, kutokana na kikomo cha kazi, ni matumizi ya biti 16 za chini tu, kuruhusu jina la pekee la hadi 65,535 na njia na kiambishi kinachofanana, hivyo kufanya nguvu ya brute iwezekane.

Zaidi ya hayo, mchakato wa udanganyifu unafanywa kuwa rahisi kwenye mifumo ya Windows. Tabia ya kipekee katika kazi ya FindFirstFile inaruhusu matumizi ya alama za wilcard katika njia za Uingizaji wa Faili za Ndani (LFI). Hii inawezesha kutengeneza njia ya kuingiza kama ifuatavyo ili kupata faili ya muda mfupi:

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

Katika hali fulani, inaweza kuhitajika kofia maalum zaidi (kama php1<< au phpA<<). Mtu anaweza kujaribu kwa mfumo huu kwa utaratibu ili kugundua faili ya muda iliyoletwa.

Utekaji katika Mifumo ya GNU/Linux

Kwa mifumo ya GNU/Linux, uwezo wa kutoa majina ya faili ya muda ni imara, hivyo majina hayo hayatabiriki wala hayawezi kushambuliwa kwa nguvu ya brute. Maelezo zaidi yanaweza kupatikana katika nyaraka zilizotajwa.