hacktricks/pentesting-web/file-inclusion/via-php_session_upload_progress.md

65 lines
5 KiB
Markdown
Raw Normal View History

# LFI2RCE via PHP\_SESSION\_UPLOAD\_PROGRESS
2022-04-28 16:01:33 +00:00
{% hint style="success" %}
AWS Hacking'i öğrenin ve uygulayın:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Eğitim AWS Kırmızı Takım Uzmanı (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
GCP Hacking'i öğrenin ve uygulayın: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Eğitim GCP Kırmızı Takım Uzmanı (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
2022-04-28 16:01:33 +00:00
<details>
2022-04-28 16:01:33 +00:00
<summary>HackTricks'i Destekleyin</summary>
2024-02-03 16:02:14 +00:00
* [**Abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin!
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) katılın veya [**telegram grubuna**](https://t.me/peass) katılın veya bizi **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)** takip edin**.
* **HackTricks** ve **HackTricks Cloud** github depolarına PR göndererek hacking püf noktalarını paylaşın.
2022-04-28 16:01:33 +00:00
</details>
{% endhint %}
2024-02-05 20:00:40 +00:00
2024-02-10 18:14:16 +00:00
## Temel Bilgiler
2022-04-21 00:07:27 +00:00
Eğer bir **Yerel Dosya Dahil Etme** bulduysanız ve **bir oturumunuz yoksa** ve `session.auto_start` `Off` ise bile. Eğer **`session.upload_progress.enabled`** **`On`** ise ve **`PHP_SESSION_UPLOAD_PROGRESS`**'i **multipart POST** verilerinde sağlarsanız, PHP **oturumu sizin için etkinleştirecektir**.
2022-04-21 00:07:27 +00:00
```bash
$ curl http://127.0.0.1/ -H 'Cookie: PHPSESSID=iamorange'
$ ls -a /var/lib/php/sessions/
. ..
$ curl http://127.0.0.1/ -H 'Cookie: PHPSESSID=iamorange' -d 'PHP_SESSION_UPLOAD_PROGRESS=blahblahblah'
$ ls -a /var/lib/php/sessions/
. ..
$ curl http://127.0.0.1/ -H 'Cookie: PHPSESSID=iamorange' -F 'PHP_SESSION_UPLOAD_PROGRESS=blahblahblah' -F 'file=@/etc/passwd'
$ ls -a /var/lib/php/sessions/
. .. sess_iamorange
In the last example the session will contain the string blahblahblah
```
**`PHP_SESSION_UPLOAD_PROGRESS`** ile **oturum içindeki verileri kontrol edebilirsiniz**, bu nedenle oturum dosyanızı dahil ederseniz kontrol ettiğiniz bir bölümü dahil edebilirsiniz (örneğin bir php kabuk kodu).
2022-04-21 00:07:27 +00:00
{% hint style="info" %}
İnternet üzerindeki çoğu öğretici, hata ayıklama amacıyla `session.upload_progress.cleanup`'ı `Off` olarak ayarlamanızı önerse de, PHP'deki varsayılan `session.upload_progress.cleanup` hala `On` dur. Bu, oturumdaki yükleme ilerlemenizin mümkün olan en kısa sürede temizleneceği anlamına gelir. Bu nedenle bu bir **Yarış Koşulu** olacaktır.
2022-04-21 00:07:27 +00:00
{% endhint %}
2024-02-10 18:14:16 +00:00
### CTF
2022-04-21 00:07:27 +00:00
Bu tekniğin yorumlandığı [**orijinal CTF**](https://blog.orange.tw/2018/10/) 'de, Yarış Koşulunu sömürmek yeterli olmadı, ayrıca yüklenen içeriğin `@<?php` dizesiyle başlaması gerekiyordu.
2022-04-21 00:07:27 +00:00
`session.upload_progress.prefix`'in varsayılan ayarı nedeniyle, **OTURUM dosyamız can sıkıcı bir önekle başlayacak** `upload_progress_` Örneğin: `upload_progress_controlledcontentbyattacker`
2022-04-21 00:07:27 +00:00
Başlangıç önekini **kaldırmak için** hileyi **payload'ı 3 kez base64encode etmek** ve ardından `convert.base64-decode` filtreleri aracılığıyla kodlamak oldu, çünkü **base64 kodunu çözerken PHP garip karakterleri kaldıracaktır**, bu nedenle 3 kezden sonra **sadece** saldırgan tarafından **gönderilen payload** **kalacak** (ve ardından saldırgan başlangıç kısmı kontrol edebilecektir).
2022-04-21 00:07:27 +00:00
Daha fazla bilgi için orijinal yazıda [https://blog.orange.tw/2018/10/](https://blog.orange.tw/2018/10/) ve nihai saldırı [https://github.com/orangetw/My-CTF-Web-Challenges/blob/master/hitcon-ctf-2018/one-line-php-challenge/exp\_for\_php.py](https://github.com/orangetw/My-CTF-Web-Challenges/blob/master/hitcon-ctf-2018/one-line-php-challenge/exp\_for\_php.py)\
Başka bir yazıda [https://spyclub.tech/2018/12/21/one-line-and-return-of-one-line-php-writeup/](https://spyclub.tech/2018/12/21/one-line-and-return-of-one-line-php-writeup/)
2022-04-28 16:01:33 +00:00
{% hint style="success" %}
AWS Hacking öğrenin ve uygulayın:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Eğitim AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
GCP Hacking öğrenin ve uygulayın: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Eğitim GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
2022-04-28 16:01:33 +00:00
<details>
2022-04-28 16:01:33 +00:00
<summary>HackTricks'i Destekleyin</summary>
2024-02-03 16:02:14 +00:00
* [**Abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin!
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) katılın veya [**telegram grubuna**](https://t.me/peass) katılın veya bizi **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)** takip edin.**
* **Hacking püf noktalarını paylaşarak PR'ler göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun.
2022-04-28 16:01:33 +00:00
2024-02-10 18:14:16 +00:00
</details>
{% endhint %}