mirror of
https://github.com/carlospolop/hacktricks
synced 2024-11-22 20:53:37 +00:00
64 lines
4.9 KiB
Markdown
64 lines
4.9 KiB
Markdown
# LFI2RCE via PHP\_SESSION\_UPLOAD\_PROGRESS
|
|
|
|
{% hint style="success" %}
|
|
Leer & oefen AWS-hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Opleiding AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
|
Leer & oefen GCP-hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Opleiding GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
|
|
|
<details>
|
|
|
|
<summary>Ondersteun HackTricks</summary>
|
|
|
|
* Controleer die [**inskrywingsplanne**](https://github.com/sponsors/carlospolop)!
|
|
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
|
* **Deel hacking-truuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
|
|
|
|
</details>
|
|
{% endhint %}
|
|
|
|
## Basiese Inligting
|
|
|
|
As jy 'n **Plaaslike Lêer Insluiting** gevind het selfs as jy **nie 'n sessie het** en `session.auto_start` is `Off`. As **`session.upload_progress.enabled`** is **`On`** en jy die **`PHP_SESSION_UPLOAD_PROGRESS`** in **multipart POST** data voorsien, sal PHP die sessie vir jou **aktiveer**.
|
|
```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
|
|
```
|
|
Merk op dat met **`PHP_SESSION_UPLOAD_PROGRESS`** jy **data binne die sessie kan beheer**, so as jy jou sessie lêer insluit, kan jy 'n deel insluit wat jy beheer (byvoorbeeld 'n php shellcode).
|
|
|
|
{% hint style="info" %}
|
|
Alhoewel die meeste tutoriale op die internet aanbeveel om `session.upload_progress.cleanup` op `Off` te stel vir die doel van foutopsporing. Die verstekwaarde vir `session.upload_progress.cleanup` in PHP is steeds `On`. Dit beteken dat jou oplaai-vordering in die sessie so gou as moontlik skoongemaak sal word. Dit sal dus **Race Condition** wees.
|
|
{% endhint %}
|
|
|
|
### Die CTF
|
|
|
|
In die [**oorspronklike CTF**](https://blog.orange.tw/2018/10/) waar hierdie tegniek gekommentaar is, was dit nie genoeg om die Race Condition te benut nie, maar die inhoud wat gelaai moes word, moes ook begin met die string `@<?php`.
|
|
|
|
As gevolg van die verstekinstelling van `session.upload_progress.prefix`, sal ons **SESSIE-lêer begin met 'n irriterende voorvoegsel** `upload_progress_` Soos: `upload_progress_controlledcontentbyattacker`
|
|
|
|
Die truuk om **die aanvanklike voorvoegsel te verwyder** was om **die lading 3 keer te base64-enkode** en dit dan te dekodeer via `convert.base64-decode` filters, dit is omdat wanneer **base64 dekodeer PHP die vreemde karakters sal verwyder**, so na 3 keer sal slegs die **lading** **gestuur** deur die aanvaller **oorbly** (en dan kan die aanvaller die aanvanklike deel beheer).
|
|
|
|
Meer inligting in die oorspronklike skryfstuk [https://blog.orange.tw/2018/10/](https://blog.orange.tw/2018/10/) en finale uitbuiting [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)\
|
|
'n Ander skryfstuk in [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/)
|
|
|
|
{% hint style="success" %}
|
|
Leer & oefen AWS Hack:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Opleiding AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
|
|
Leer & oefen GCP Hack: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Opleiding GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
|
|
|
|
<details>
|
|
|
|
<summary>Ondersteun HackTricks</summary>
|
|
|
|
* Kontroleer die [**inskrywingsplanne**](https://github.com/sponsors/carlospolop)!
|
|
* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
|
* **Deel hacktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag.
|
|
|
|
</details>
|
|
{% endhint %}
|