phar:// deserialization
Last updated
Last updated
Aprenda e pratique Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE) Aprenda e pratique Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)
Dica de bug bounty: inscreva-se no Intigriti, uma plataforma de bug bounty premium criada por hackers, para hackers! Junte-se a nós em https://go.intigriti.com/hacktricks hoje e comece a ganhar recompensas de até $100,000!
Arquivos Phar (PHP Archive) contêm metadados em formato serializado, então, quando analisados, esses metadados são desserializados e você pode tentar explorar uma vulnerabilidade de desserialização dentro do código PHP.
A melhor parte dessa característica é que essa desserialização ocorrerá mesmo usando funções PHP que não avaliam código PHP como file_get_contents(), fopen(), file() ou file_exists(), md5_file(), filemtime() ou filesize().
Então, imagine uma situação onde você pode fazer um web PHP obter o tamanho de um arquivo arbitrário usando o protocolo phar://
, e dentro do código você encontra uma classe semelhante à seguinte:
Você pode criar um arquivo phar que, quando carregado, abusará desta classe para executar comandos arbitrários com algo como:
Observe como os bytes mágicos de JPG (\xff\xd8\xff
) são adicionados no início do arquivo phar para contornar possíveis restrições de upload de arquivos.
Compile o arquivo test.phar
com:
E execute o comando whoami
abusando do código vulnerável com:
Dica de bug bounty: inscreva-se na Intigriti, uma plataforma premium de bug bounty criada por hackers, para hackers! Junte-se a nós em https://go.intigriti.com/hacktricks hoje e comece a ganhar recompensas de até $100,000!
Aprenda e pratique Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE) Aprenda e pratique Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)