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

63 lines
5 KiB
Markdown
Raw Normal View History

2024-02-10 13:11:20 +00:00
# LFI2RCE putem PHP\_SESSION\_UPLOAD\_PROGRESS
2022-04-28 16:01:33 +00:00
<details>
2024-02-10 13:11:20 +00:00
<summary><strong>Naučite hakovanje AWS-a od nule do heroja sa</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 13:11:20 +00:00
Drugi načini podrške HackTricks-u:
2024-02-03 16:02:14 +00:00
2024-02-10 13:11:20 +00:00
* Ako želite da vidite **vašu kompaniju reklamiranu na HackTricks-u** ili **preuzmete HackTricks u PDF formatu** proverite [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Otkrijte [**The PEASS Family**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili nas **pratite** na **Twitter-u** 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live)**.**
* **Podelite svoje hakovanje trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
2022-04-28 16:01:33 +00:00
</details>
2024-02-05 20:00:40 +00:00
2024-02-10 13:11:20 +00:00
## Osnovne informacije
2022-04-21 00:07:27 +00:00
2024-02-10 13:11:20 +00:00
Ako ste pronašli **Lokalno uključivanje fajlova (LFI)** čak i ako **nemate sesiju** i `session.auto_start` je `Off`. Ako je **`session.upload_progress.enabled`** **`On`** i pružite **`PHP_SESSION_UPLOAD_PROGRESS`** u **multipart POST** podacima, PHP će **omogućiti sesiju za vas**.
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
```
2024-02-10 13:11:20 +00:00
Napomena je da sa **`PHP_SESSION_UPLOAD_PROGRESS`** možete **kontrolisati podatke unutar sesije**, tako da ako uključite svoj sesijski fajl, možete uključiti deo koji kontrolišete (na primer, php shellcode).
2022-04-21 00:07:27 +00:00
{% hint style="info" %}
2024-02-10 13:11:20 +00:00
Iako većina tutorijala na internetu preporučuje da postavite `session.upload_progress.cleanup` na `Off` u svrhu debagovanja, podrazumevana vrednost `session.upload_progress.cleanup` u PHP-u je i dalje `On`. To znači da će se vaš napredak pri otpremanju u sesiji očistiti što je pre moguće. Dakle, ovo će biti **trka stanja**.
2022-04-21 00:07:27 +00:00
{% endhint %}
2024-02-10 13:11:20 +00:00
### CTF
2022-04-21 00:07:27 +00:00
2024-02-10 13:11:20 +00:00
U [**originalnom CTF-u**](https://blog.orange.tw/2018/10/) gde je ova tehnika komentarisana, nije bilo dovoljno iskoristiti trku stanja, već je učitani sadržaj takođe trebao da počne sa stringom `@<?php`.
2022-04-21 00:07:27 +00:00
2024-02-10 13:11:20 +00:00
Zbog podrazumevane postavke `session.upload_progress.prefix`, naš **SESIJSKI fajl će početi sa dosadnim prefiksom** `upload_progress_` kao što je: `upload_progress_controlledcontentbyattacker`
2022-04-21 00:07:27 +00:00
2024-02-10 13:11:20 +00:00
Trika za **uklanjanje početnog prefiksa** bila je **base64 enkodiranje payloada 3 puta** i zatim dekodiranje putem filtera `convert.base64-decode`, to je zato što će PHP prilikom **base64 dekodiranja ukloniti čudne karaktere**, tako da će posle 3 puta **samo** **payload** **poslat** od strane napadača **ostati** (a zatim napadač može kontrolisati početni deo).
2022-04-21 00:07:27 +00:00
2024-02-10 13:11:20 +00:00
Više informacija u originalnom writeup-u [https://blog.orange.tw/2018/10/](https://blog.orange.tw/2018/10/) i konačni exploit [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)\
Još jedan writeup na [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
<details>
2024-02-10 13:11:20 +00:00
<summary><strong>Naučite hakovanje AWS-a od nule do heroja sa</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 13:11:20 +00:00
Drugi načini da podržite HackTricks:
2024-02-03 16:02:14 +00:00
2024-02-10 13:11:20 +00:00
* Ako želite da vidite **vašu kompaniju reklamiranu na HackTricks** ili **preuzmete HackTricks u PDF formatu**, proverite [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Otkrijte [**The PEASS Family**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili nas **pratite** na **Twitteru** 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live)**.**
* **Podelite svoje hakovanje trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
2022-04-28 16:01:33 +00:00
2024-02-10 13:11:20 +00:00
</details>