Aprenda e pratique Hacking AWS:<imgsrc="/.gitbook/assets/arte.png"alt=""data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<imgsrc="/.gitbook/assets/arte.png"alt=""data-size="line">\
Aprenda e pratique Hacking GCP: <imgsrc="/.gitbook/assets/grte.png"alt=""data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<imgsrc="/.gitbook/assets/grte.png"alt=""data-size="line">](https://training.hacktricks.xyz/courses/grte)
* Confira os [**planos de assinatura**](https://github.com/sponsors/carlospolop)!
* **Junte-se ao** 💬 [**grupo do Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo do telegram**](https://t.me/peass) ou **siga**-nos no **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Compartilhe truques de hacking enviando PRs para os repositórios do** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud).
Para explorar essa vulnerabilidade você precisa: **Uma vulnerabilidade LFI, uma página onde phpinfo() é exibido, "file\_uploads = on" e o servidor deve ser capaz de escrever no diretório "/tmp".**
Você também precisa alterar o **payload** no início do exploit (por exemplo, para um php-rev-shell), o **REQ1** (isso deve apontar para a página phpinfo e deve ter o padding incluído, ou seja: _REQ1="""POST /install.php?mode=phpinfo\&a="""+padding+""" HTTP/1.1_), e **LFIREQ** (isso deve apontar para a vulnerabilidade LFI, ou seja: _LFIREQ="""GET /info?page=%s%%00 HTTP/1.1\r --_ Verifique o duplo "%" ao explorar o caractere nulo)
Se uploads são permitidos em PHP e você tenta fazer o upload de um arquivo, esse arquivo é armazenado em um diretório temporário até que o servidor termine de processar a solicitação, então esse arquivo temporário é excluído.
Então, se você encontrou uma vulnerabilidade LFI no servidor web, pode tentar adivinhar o nome do arquivo temporário criado e explorar um RCE acessando o arquivo temporário antes que ele seja excluído.
No **linux**, o nome do arquivo costuma ser **aleatório** e localizado em **/tmp**. Como o nome é aleatório, é necessário **extrair de algum lugar o nome do arquivo temporário** e acessá-lo antes que ele seja excluído. Isso pode ser feito lendo o valor da **variável $\_FILES** dentro do conteúdo da função "**phpconfig()**".
**PHP** usa um buffer de **4096B** e quando está **cheio**, é **enviado ao cliente**. Então, o cliente pode **enviar****muitas requisições grandes** (usando cabeçalhos grandes) **fazendo upload de um php** reverse **shell**, esperar que **a primeira parte do phpinfo() seja retornada** (onde o nome do arquivo temporário está) e tentar **acessar o arquivo temporário** antes que o servidor php exclua o arquivo explorando uma vulnerabilidade LFI.
Aprenda e pratique Hacking AWS:<imgsrc="/.gitbook/assets/arte.png"alt=""data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<imgsrc="/.gitbook/assets/arte.png"alt=""data-size="line">\
Aprenda e pratique Hacking GCP: <imgsrc="/.gitbook/assets/grte.png"alt=""data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<imgsrc="/.gitbook/assets/grte.png"alt=""data-size="line">](https://training.hacktricks.xyz/courses/grte)
* Confira os [**planos de assinatura**](https://github.com/sponsors/carlospolop)!
* **Junte-se ao** 💬 [**grupo do Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo do telegram**](https://t.me/peass) ou **siga**-nos no **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Compartilhe truques de hacking enviando PRs para os repositórios do** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud).