Le caviardage qui n'était qu'un calque : mises à jour incrémentales PDF

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

Le défi

Un PDF d'accord transactionnel a été publié avec le nom de l'autre partie noirci, et la copie du tribunal affiche REDACTED à l'endroit où figurait le nom. Un PDF n'est pourtant pas une image à plat : il conserve ses modifications sous forme de couches, et noircir un élément avec le mauvais outil ajoute une nouvelle couche par-dessus l'ancienne au lieu de la supprimer. Les octets bruts du fichier sont dans le visualiseur. Lisez-les et retrouvez le nom qui était censé avoir disparu.

Ce que tu vas apprendre

  • Expliquer qu'un PDF stocke les modifications sous forme de révisions incrémentales ajoutées à la fin
  • Repérer les limites des révisions en trouvant les marqueurs %%EOF dans les octets
  • Récupérer un contenu qu'une révision ultérieure a remplacé sans le supprimer
  • Reconnaître qu'un noircissement visuel n'est pas un caviardage et laisse le texte intact
  • Indiquer comment caviarder un document pour que rien ne subsiste en dessous

Compétences testées

Forensique de documentsLecture d'un dump hex/ASCIIStructure d'un PDF

Prérequis

  • Lire la colonne ASCII d'une vue hexadécimale
  • L'idée qu'un fichier conserve son historique

Comment ça marche

Un PDF se modifie en ajoutant du contenu à la fin. Le contenu d'origine est écrit puis fermé par %%EOF ; les changements suivants sont ajoutés après lui sous forme de mise à jour incrémentale, avec son propre %%EOF. Un lecteur affiche la définition la plus récente de chaque objet, ce qui donne l'impression que la dernière version est la seule version.

Ce n'est pas le cas. Chaque révision précédente est toujours dans le fichier, avant le %%EOF précédent. Un rectangle dessiné sur du texte, ou une modification de métadonnées enregistrée de cette façon, ajoute un nouveau calque et laisse les anciens octets intacts. Lire le fichier brut permet de récupérer tout ce qu'une révision antérieure contenait.

C'est une fuite courante dans la réalité : un caviardage fait visuellement, ou des propriétés de document modifiées, sans aplatissement ni nettoyage, de sorte que l'original persiste dans une ancienne révision, un flux d'objets, les métadonnées XMP ou une miniature.

Erreurs fréquentes

  • Lire la dernière révision. C'est là que se trouve REDACTED ; l'original est avant le premier %%EOF.
  • Faire confiance à la page affichée. Le lecteur n'affiche que le dernier calque ; les octets les contiennent tous.
  • Répondre REDACTED. C'est le remplacement, pas le nom récupéré.
  • S'attendre à du chiffrement. Rien n'est chiffré ; le nom est là, en octets lisibles.

Comment s'en protéger

Caviarder en supprimant, puis aplatir.

  • Utilisez un véritable outil de caviardage qui supprime le texte et les images sous-jacents, et non un outil qui dessine un rectangle opaque par-dessus.
  • Aplatissez ou ré-exportez ensuite le document (par exemple en l'imprimant vers un nouveau PDF) pour qu'aucun historique incrémental ne subsiste.
  • Supprimez les métadonnées (XMP, informations du document, miniatures intégrées) avant publication.
  • Considérez tout document publié comme porteur de tout son historique de modifications tant qu'il n'a pas été nettoyé.

Solution complète

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

Passer Pro

Statistiques de la communauté

181 résolutions
91% taux de réussite
Malekith Premier sang

Hacks du jour associés

34 000+ Hackers Vrais labs Gratuit
Commencer Gratuitement ou résolvez le hack du jour, sans compte