hacktricks/pentesting-web/file-inclusion/lfi2rce-via-temp-file-uploads.md

46 lines
3.5 KiB
Markdown
Raw Normal View History

2022-04-28 16:01:33 +00:00
<details>
2024-02-11 02:13:58 +00:00
<summary><strong>Jifunze kuhusu kudukua AWS kutoka sifuri hadi shujaa na</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
2022-04-28 16:01:33 +00:00
2024-02-11 02:13:58 +00:00
Njia nyingine za kusaidia HackTricks:
2022-04-28 16:01:33 +00:00
2024-02-11 02:13:58 +00:00
* Ikiwa unataka kuona **kampuni yako inatangazwa kwenye HackTricks** au **kupakua HackTricks kwa PDF** Angalia [**MPANGO WA KUJIUNGA**](https://github.com/sponsors/carlospolop)!
* Pata [**swag rasmi ya PEASS & HackTricks**](https://peass.creator-spring.com)
* Gundua [**The PEASS Family**](https://opensea.io/collection/the-peass-family), mkusanyiko wetu wa kipekee wa [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Jiunge na** 💬 [**Kikundi cha Discord**](https://discord.gg/hRep4RUj7f) au [**kikundi cha telegram**](https://t.me/peass) au **tufuate** kwenye **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Shiriki mbinu zako za kudukua kwa kuwasilisha PRs kwenye** [**HackTricks**](https://github.com/carlospolop/hacktricks) na [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repos za github.
2022-04-28 16:01:33 +00:00
</details>
2024-02-05 20:00:40 +00:00
2024-02-11 02:13:58 +00:00
**Angalia maelezo kamili ya mbinu hii katika [https://gynvael.coldwind.pl/download.php?f=PHP\_LFI\_rfc1867\_temporary\_files.pdf](https://gynvael.coldwind.pl/download.php?f=PHP\_LFI\_rfc1867\_temporary\_files.pdf)**
2024-02-05 20:00:40 +00:00
2024-02-11 02:13:58 +00:00
## **Upakiaji wa Faili za PHP**
2022-04-21 00:07:27 +00:00
2024-02-11 02:13:58 +00:00
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.
2022-04-21 00:07:27 +00:00
{% hint style="info" %}
2024-02-11 02:13:58 +00:00
**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.**
2022-04-21 00:07:27 +00:00
{% endhint %}
2024-02-11 02:13:58 +00:00
Changamoto ya kupata ufikiaji usiohalali iko katika kutabiri jina la faili ya muda mfupi, ambayo imepangwa kwa makusudi.
2022-04-21 00:07:27 +00:00
2024-02-11 02:13:58 +00:00
#### Udukuzi kwenye Mifumo ya Windows
2022-04-21 00:07:27 +00:00
2024-02-11 02:13:58 +00:00
Kwenye Windows, PHP inazalisha majina ya faili za muda mfupi kwa kutumia kazi ya `GetTempFileName`, ikitoa muundo kama `<njia>\<pre><uuuu>.TMP`. Kwa kuzingatia:
2022-04-21 00:07:27 +00:00
2024-02-11 02:13:58 +00:00
- 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.
2022-04-21 00:07:27 +00:00
2024-02-11 02:13:58 +00:00
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:
2022-04-21 00:07:27 +00:00
```
http://site/vuln.php?inc=c:\windows\temp\php<<
```
2024-02-11 02:13:58 +00:00
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.
2022-04-21 00:07:27 +00:00
2024-02-11 02:13:58 +00:00
#### Utekaji katika Mifumo ya GNU/Linux
2022-04-28 16:01:33 +00:00
2024-02-11 02:13:58 +00:00
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.