Comme je peux décompresser les fichiers sur mon Mac, je suppose qu'il s'agit de vrais fichiers zip et non pas de quelque chose comme des fichiers php renommés.
Pendant que vous êtes probablement Dans ce cas, votre hypothèse n'est pas toujours valable. Une archive ZIP reste valide même si vous y ajoutez des données arbitraires Il est donc tout à fait possible de créer un fichier qui soit à la fois une archive ZIP valide contenant des données innocentes et un script malveillant. Ce n'est même pas particulièrement difficile ; il suffit de concaténer le code PHP et le fichier ZIP, et de s'assurer (par exemple en utilisant la fonction __halt_compiler()
) que PHP n'essaiera pas d'analyser les données de l'archive ZIP annexée.
Cette astuce est légitimement utilisée pour créer des fichiers ZIP auto-extractibles, mais il est parfaitement possible d'ajouter à l'avance toute autre donnée cachée ou code exécutable dans un fichier ZIP de la même manière. Certains programmes peuvent refuser d'ouvrir de tels fichiers ZIP modifiés (mais si c'est le cas, ils violent techniquement la spécification du format ZIP), ou ils peuvent identifier le fichier comme étant autre chose qu'un fichier ZIP par défaut, mais en général, si vous introduisez un tel fichier dans un code qui attend un fichier ZIP, il sera probablement accepté comme tel.
Une utilisation malveillante plus courante de ces astuces consiste à déguiser un code d'exploitation dans un conteneur ZIP (par exemple, un fichier JAR) en quelque chose d'inoffensif (comme une image GIF, comme dans le cas du fichier GIFAR ), mais il n'y a aucune raison pour qu'il ne puisse pas être utilisé dans l'autre sens, par exemple pour contourner un filtre naïf de téléchargement de fichiers qui interdit le téléchargement de scripts PHP scripts mais autorise les fichiers ZIP, sans vérifier si le fichier téléchargé peut être les deux en même temps.