# LFI2RCE putem PHP_SESSION_UPLOAD_PROGRESS {{#include ../../banners/hacktricks-training.md}} ## Osnovne informacije Ako ste pronašli **Local File Inclusion** čak i ako **nemate sesiju** i `session.auto_start` je `Isključeno`. Ako je **`session.upload_progress.enabled`** **`Uključeno`** i pružite **`PHP_SESSION_UPLOAD_PROGRESS`** u **multipart POST** podacima, PHP će **omogućiti sesiju za vas**. ```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 ``` Napomena 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). > [!NAPOMENA] > Iako većina tutorijala na Internetu preporučuje da postavite `session.upload_progress.cleanup` na `Off` u svrhu debagovanja. Podrazumevano `session.upload_progress.cleanup` u PHP-u je i dalje `On`. To znači da će vaš napredak u uploadu u sesiji biti očišćen što je pre moguće. Dakle, ovo će biti **Race Condition**. ### CTF U [**originalnom CTF**](https://blog.orange.tw/2018/10/) gde je ova tehnika komentarisana, nije bilo dovoljno iskoristiti Race Condition, već je sadržaj koji se učitava morao da počne i sa stringom `@