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

61 lines
4.8 KiB
Markdown
Raw Normal View History

2022-04-28 16:01:33 +00:00
<details>
2024-02-10 18:14:16 +00:00
<summary><strong>AWS hacklemeyi sıfırdan kahraman olmak için</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong> öğrenin!</strong></summary>
2022-04-28 16:01:33 +00:00
2024-02-10 18:14:16 +00:00
HackTricks'ı desteklemenin diğer yolları:
2022-04-28 16:01:33 +00:00
2024-02-10 18:14:16 +00:00
* **Şirketinizi HackTricks'te reklamını görmek isterseniz** veya **HackTricks'i PDF olarak indirmek isterseniz** [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimizden**](https://opensea.io/collection/the-peass-family) oluşan koleksiyonumuz
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**'ı takip edin**.
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına **PR göndererek paylaşın**.
2022-04-28 16:01:33 +00:00
</details>
2024-02-05 20:00:40 +00:00
2024-02-10 18:14:16 +00:00
**Bu teknikle ilgili tüm ayrıntıları [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)** adresinde kontrol edin.
2024-02-05 20:00:40 +00:00
2024-02-10 18:14:16 +00:00
## **PHP Dosya yüklemeleri**
2022-04-21 00:07:27 +00:00
2024-02-10 18:14:16 +00:00
Bir **PHP** motoru, RFC 1867'ye göre biçimlendirilmiş dosyalar içeren bir **POST isteği** aldığında, yüklenen verileri depolamak için geçici dosyalar oluşturur. Bu dosyalar, PHP betiklerinde dosya yükleme işlemlerini yönetmek için önemlidir. Eğer betiğin çalışmasından sonra kalıcı depolama gerekiyorsa, bu geçici dosyaları istenen bir konuma taşımak için `move_uploaded_file` işlevi kullanılmalıdır. PHP, yürütme sonrasında kalan geçici dosyaları otomatik olarak siler.
2022-04-21 00:07:27 +00:00
{% hint style="info" %}
2024-02-10 18:14:16 +00:00
**Güvenlik Uyarısı: Geçici dosyaların konumunu bilen saldırganlar, yükleme sırasında dosyaya erişerek Kod Yürütme ile Yerel Dosya Dahil Etme (LFI) zafiyetini istismar edebilir.**
2022-04-21 00:07:27 +00:00
{% endhint %}
2024-02-10 18:14:16 +00:00
Yetkisiz erişim için zorluk, geçici dosyanın adını tahmin etmektedir ve bu adlar kasıtlı olarak rastgele oluşturulur.
2022-04-21 00:07:27 +00:00
2024-02-10 18:14:16 +00:00
#### Windows Sistemlerinde Sömürü
2022-04-21 00:07:27 +00:00
2024-02-10 18:14:16 +00:00
Windows üzerinde, PHP `GetTempFileName` işlevini kullanarak geçici dosya adları oluşturur ve `<path>\<pre><uuuu>.TMP` gibi bir desen elde eder. Özellikle:
2022-04-21 00:07:27 +00:00
2024-02-10 18:14:16 +00:00
- Varsayılan yol genellikle `C:\Windows\Temp`'tir.
- Önek genellikle "php"dir.
- `<uuuu>`, benzersiz onaltılık bir değeri temsil eder. Önemli olan, işlevin sınırlaması nedeniyle, yalnızca alt 16 bitin kullanılmasıdır, bu da sabit yol ve önek ile maksimum 65.535 benzersiz adın oluşmasına olanak tanır ve brute force saldırısı yapılabilir.
2022-04-21 00:07:27 +00:00
2024-02-10 18:14:16 +00:00
Ayrıca, sömürü süreci Windows sistemlerinde basitleştirilmiştir. `FindFirstFile` işlevindeki bir özellik, Yerel Dosya Dahil Etme (LFI) yollarında joker karakterlerin kullanılmasına izin verir. Bu, geçici dosyayı bulmak için aşağıdaki gibi bir dahil etme yolunun oluşturulmasını sağlar:
2022-04-21 00:07:27 +00:00
```
http://site/vuln.php?inc=c:\windows\temp\php<<
```
2024-02-10 18:14:16 +00:00
Belirli durumlarda, daha spesifik bir maske (`php1<<` veya `phpA<<` gibi) gerekebilir. Yüklenen geçici dosyayı keşfetmek için bu maskeler sistematik olarak denenebilir.
2022-04-21 00:07:27 +00:00
2024-02-10 18:14:16 +00:00
#### GNU/Linux Sistemlerinde Sömürü
2022-04-21 00:07:27 +00:00
2024-02-10 18:14:16 +00:00
GNU/Linux sistemlerinde, geçici dosya adlandırma işlemindeki rastgelelik güçlüdür, bu nedenle adlar tahmin edilemez ve brute force saldırılarına karşı savunmalıdır. Daha fazla ayrıntı için ilgili belgelere bakabilirsiniz.
2022-04-28 16:01:33 +00:00
<details>
2024-02-10 18:14:16 +00:00
<summary><strong>AWS hacklemeyi sıfırdan kahraman olmak için öğrenin</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-10 18:14:16 +00:00
HackTricks'i desteklemenin diğer yolları:
2022-04-28 16:01:33 +00:00
2024-02-10 18:14:16 +00:00
* Şirketinizi HackTricks'te **reklamınızı görmek** veya HackTricks'i **PDF olarak indirmek** için [**ABONELİK PLANLARINA**](https://github.com/sponsors/carlospolop) göz atın!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* Özel [**NFT'lerden**](https://opensea.io/collection/the-peass-family) oluşan koleksiyonumuz [**The PEASS Family**](https://opensea.io/collection/the-peass-family)'i keşfedin
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)'u **takip edin**.
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna **PR göndererek** paylaşın.
2022-04-28 16:01:33 +00:00
</details>