ZIP déguisé : lire les magic bytes d'un fichier plutôt que son extension

Investigation Numérique & Réponse à Incident Niveau 3/4 ~5 min 8 juillet 2026

Le défi

Un analyste a récupéré report.pdf sur le portable d'un suspect, mais il ne s'ouvre jamais dans un lecteur PDF. Ouvrez-le dans la visionneuse hexadécimale, comparez les premiers octets aux signatures de référence, et indiquez le vrai format de conteneur.

Ce que tu vas apprendre

  • Lire les premiers octets d'un fichier dans une visionneuse hexadécimale et reconnaître une signature de fichier connue
  • Associer la signature 50 4B 03 04 ('PK') à la famille des conteneurs ZIP
  • Expliquer pourquoi l'extension d'un fichier n'est que des métadonnées alors que les magic bytes font foi
  • Reconnaître que les documents Office et les APK sont en réalité des conteneurs ZIP
  • Écarter les hypothèses PDF, RAR et 7-Zip en comparant leurs signatures d'en-tête distinctes

Compétences testées

Identification de signatures de fichiers / magic bytesLecture d'en-têtes hexadécimauxTriage du type de fichier lors d'une réponse à incident

Prérequis

  • Aisance dans la lecture de valeurs d'octets hexadécimales
  • Savoir qu'une extension de fichier peut être modifiée librement sans altérer le contenu

Comment ça marche

Chaque format de fichier courant commence par une séquence fixe d'octets appelée nombre magique ou signature. Le système d'exploitation et la plupart des visionneuses, en revanche, décident de l'application à lancer en se basant sur l'extension du fichier, une métadonnée du nom que n'importe quel utilisateur peut modifier en une seconde. C'est cet écart que ce challenge exploite : un fichier nommé report.pdf dont le contenu réel n'est pas du tout un PDF.

Un vrai PDF commence par les octets ASCII 25 50 44 46, qui forment %PDF. Le fichier que vous avez sous les yeux commence quant à lui par 50 4B 03 04. Les deux premiers octets, 50 4B, sont l'ASCII PK, les initiales de Phil Katz, créateur du format ZIP, et 03 04 est le marqueur d'en-tête de fichier local. Cette séquence de quatre octets est la signature caractéristique d'une archive ZIP.

Cela va bien au-delà des fichiers renommés. Les documents Office modernes (.docx, .xlsx, .pptx), les JAR Java et les APK Android sont tous des conteneurs ZIP portant une extension différente. Un défenseur qui se fie à l'extension va mal trier chacun d'entre eux. Le réflexe fiable est toujours le même : ouvrir l'en-tête et lire les magic bytes.

Erreurs fréquentes

  • Faire confiance à l'extension. Supposer que report.pdf est un PDF parce que le nom le dit. Le nom est une métadonnée ; les octets sont le fichier.
  • Mal interpréter 50 4B en pensant que 'PK est illisible'. Passer à côté de la colonne ASCII où 50 4B s'affiche clairement comme PK, l'indice révélateur de la famille ZIP.
  • Confondre ZIP avec RAR ou 7-Zip. RAR commence par 52 61 72 21 ('Rar!') et 7-Zip par 37 7A BC AF ; seul 50 4B 03 04 correspond au ZIP.
  • S'arrêter à 'c'est une archive'. La consigne demande le format de conteneur précis, et la signature n'en désigne qu'un seul : ZIP.

Comment s'en protéger

La détection et le triage doivent se baser sur le contenu, pas sur le nom des fichiers, et tout fichier téléversé doit être validé selon son type réel avant d'être stocké ou traité.

  • Utilisez un identifiant basé sur le contenu (une vérification de type libmagic) sur chaque fichier téléversé ou mis en quarantaine, plutôt que sur son extension.
  • Pour une liste blanche de téléversement, vérifiez que les magic bytes correspondent au type déclaré et rejetez les incohérences, car dissimuler un ZIP en PDF est une technique de contrebande classique.
  • Traitez toute signature de la famille ZIP (50 4B 03 04) portant une extension non liée à une archive comme suspecte et faites-la analyser plus en profondeur.
  • Lors de la décompression d'archives inconnues, faites-le dans un bac à sable et prémunissez-vous contre le path traversal (Zip Slip) au sein des entrées.

Solution complète

Les membres Pro et Max débloquent la solution complète étape par étape.

Passer Pro

Statistiques de la communauté

79 résolutions
76% taux de réussite
Vicusol Premier sang

Hacks du jour associés

24 000+ Hackers 100+ Labs & Cours Gratuit
Commencer Gratuitement