Desde que eu sou capaz de descompactar os arquivos no meu mac, suponho que estes são arquivos zip reais e não apenas algo como arquivos php renomeados.
Enquanto você provavelmente está certo nesse caso, sua suposição nem sempre é válida. Um arquivo ZIP permanece válido mesmo se você anexar dados arbitrários a ele , portanto, é possível criar um arquivo que seja simultaneamente um arquivo ZIP válido contendo dados inocentes e também um script PHP malicioso. Nem é particularmente difícil; apenas concatene o código PHP e o arquivo ZIP e certifique-se (por exemplo, usando __halt_compiler()
) de que o PHP não tente analisar os dados do arquivo ZIP anexados.
Esse truque é legitimamente usado para criar arquivos ZIP com extração automática, mas é perfeitamente possível acrescentar outros dados ocultos ou código executável em um arquivo ZIP da mesma maneira. Alguns programas podem se recusar a abrir esses arquivos ZIP modificados (mas, se estiverem, estão tecnicamente violando as especificações do formato ZIP) ou podem identificar o arquivo como algo diferente de um arquivo ZIP por padrão, mas geralmente, se você alimentar um arquivo no código que espera um arquivo ZIP, ele provavelmente será aceito como um.
Um uso malicioso mais comum desses truques é disfarçar o código de exploração em um contêiner baseado em ZIP (por exemplo, um arquivo JAR) como algo inofensivo (como uma imagem GIF, como na exploração GIFAR ), mas não há razão para que não possa ser. também é usado na outra direção, por exemplo, para ignorar um filtro de upload de arquivo ingênuo que proíbe o upload de scripts PHP, mas permite arquivos ZIP, sem verificar se o arquivo carregado pode ser ambos ao mesmo tempo.