# LFI2RCE via PHP_SESSION_UPLOAD_PROGRESS
Aprenda hacking na AWS do zero ao herói com htARTE (HackTricks AWS Red Team Expert)! Outras formas de apoiar o HackTricks: * Se você quiser ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF** Verifique os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)! * Adquira o [**swag oficial PEASS & HackTricks**](https://peass.creator-spring.com) * Descubra [**A Família PEASS**](https://opensea.io/collection/the-peass-family), nossa coleção exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family) * **Junte-se ao** 💬 [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-nos** no **Twitter** 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live)**.** * **Compartilhe seus truques de hacking enviando PRs para os** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositórios do github.
## Informações Básicas Se você encontrou uma **Inclusão de Arquivo Local** mesmo se você **não tiver uma sessão** e `session.auto_start` estiver `Off`. Se **`session.upload_progress.enabled`** estiver **`On`** e você fornecer o **`PHP_SESSION_UPLOAD_PROGRESS`** nos dados **multipart POST**, o PHP irá **ativar a sessão para você**. ```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 ``` Note que com **`PHP_SESSION_UPLOAD_PROGRESS`** você pode **controlar dados dentro da sessão**, então se você incluir seu arquivo de sessão, você pode incluir uma parte que você controla (um shellcode php, por exemplo). {% hint style="info" %} Embora a maioria dos tutoriais na Internet recomende definir `session.upload_progress.cleanup` como `Off` para fins de depuração. O padrão `session.upload_progress.cleanup` no PHP ainda é `On`. Isso significa que seu progresso de upload na sessão será limpo o mais rápido possível. Portanto, isso será uma **Condição de Corrida**. {% endhint %} ### O CTF No [**CTF original**](https://blog.orange.tw/2018/10/) onde essa técnica é comentada, não foi suficiente explorar a Condição de Corrida, mas o conteúdo carregado precisava começar também com a string `@ Aprenda hacking AWS do zero ao herói com htARTE (HackTricks AWS Red Team Expert)! Outras maneiras de apoiar o HackTricks: * Se você quiser ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF** Confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)! * Adquira o [**swag oficial PEASS & HackTricks**](https://peass.creator-spring.com) * Descubra [**A Família PEASS**](https://opensea.io/collection/the-peass-family), nossa coleção exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family) * **Junte-se ao** 💬 [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-nos** no **Twitter** 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live)**.** * **Compartilhe seus truques de hacking enviando PRs para os** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.