* Você trabalha em uma **empresa de segurança cibernética**? Você quer ver sua **empresa anunciada no HackTricks**? ou quer ter acesso à **última versão do PEASS ou baixar o HackTricks em PDF**? Confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
* 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)
* Adquira o [**swag oficial do PEASS & HackTricks**](https://peass.creator-spring.com)
* **Junte-se ao** [**💬**](https://emojipedia.org/speech-balloon/) [**grupo do Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo do telegram**](https://t.me/peass) ou **siga-me** no **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Compartilhe suas técnicas de hacking enviando PRs para o** [**repositório hacktricks**](https://github.com/carlospolop/hacktricks) **e para o** [**repositório hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
Felizmente, o PHP é atualmente frequentemente implantado via PHP-FPM e Nginx. O Nginx oferece um recurso facilmente ignorado de [bufferização do corpo do cliente](https://nginx.org/en/docs/http/ngx\_http\_core\_module.html#client\_body\_buffer\_size), que gravará arquivos temporários se o corpo do cliente (não limitado a post) for maior que um determinado limite.
Esse recurso permite que as vulnerabilidades de inclusão de arquivos locais sejam exploradas sem qualquer outra forma de criação de arquivos, se o Nginx for executado como o mesmo usuário que o PHP (muito comumente feito como www-data).
É visível que **o arquivo temporário é desvinculado imediatamente** após ser aberto pelo Nginx. Felizmente, **o procfs pode ser usado para ainda obter uma referência** ao arquivo excluído por meio de uma corrida:
Nota: Não é possível incluir diretamente `/proc/34/fd/15` neste exemplo, pois a função `include` do PHP resolveria o caminho para `/var/lib/nginx/body/0000001368 (deleted)`, que não existe no sistema de arquivos. Felizmente, essa pequena restrição pode ser contornada por meio de alguma indireção, como: `/proc/self/fd/34/../../../34/fd/15`, que finalmente executará o conteúdo do arquivo `/var/lib/nginx/body/0000001368` excluído.
Este método de LFI to RCE é baseado em uma vulnerabilidade no Nginx que permite a um usuário local ler arquivos temporários criados pelo Nginx. Esses arquivos temporários podem conter informações sensíveis, como senhas e chaves privadas, que podem ser usadas para obter acesso não autorizado ao sistema.
## Exploração
Para explorar essa vulnerabilidade, o atacante precisa ter acesso ao sistema e ser capaz de ler arquivos temporários criados pelo Nginx. O atacante pode usar um exploit para ler esses arquivos e obter informações sensíveis.
Uma vez que o atacante tenha acesso a essas informações, ele pode usá-las para obter acesso não autorizado ao sistema. Por exemplo, o atacante pode usar as informações para se autenticar como um usuário legítimo e acessar recursos restritos.
Para mitigar essa vulnerabilidade, é recomendável que os usuários restrinjam o acesso ao sistema e monitorem o uso de arquivos temporários pelo Nginx. Além disso, os usuários devem garantir que as senhas e chaves privadas sejam armazenadas de forma segura e não sejam acessíveis a usuários não autorizados.
Isso é do [https://lewin.co.il/winning-the-impossible-race-an-unintended-solution-for-includers-revenge-counter-hxp-2021/](https://lewin.co.il/winning-the-impossible-race-an-unintended-solution-for-includers-revenge-counter-hxp-2021/)
# Use all CPUs to send the payload as request body for Nginx
for _ in range(multiprocessing.cpu_count()):
p = multiprocessing.Process(target=send_payload_worker, args=(requests_session,))
p.start()
def generate_random_path_prefix(nginx_pids):
# This method creates a path from random amount of ProcFS path components. A generated path will look like /proc/<nginxpid1>/cwd/proc/<nginxpid2>/root/proc/<nginxpid3>/root
* Você trabalha em uma **empresa de cibersegurança**? Você quer ver sua **empresa anunciada no HackTricks**? ou quer ter acesso à **última versão do PEASS ou baixar o HackTricks em PDF**? Verifique os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
* 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)
* Adquira o [**swag oficial do PEASS & HackTricks**](https://peass.creator-spring.com)
* **Junte-se ao** [**💬**](https://emojipedia.org/speech-balloon/) [**grupo do Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo do telegram**](https://t.me/peass) ou **siga-me** no **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Compartilhe suas técnicas de hacking enviando PRs para o** [**repositório hacktricks**](https://github.com/carlospolop/hacktricks) **e para o** [**repositório hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).