Principe:
Patcher un fichier PDF corrompu pour pouvoir l'ouvrir et lire le flag qu'il contient
Le challenge
Contenus corrompus
J'ai tenté des outils de "recover your PDF file", mais ces outils sont assez… niaiseux
et aucun n'a marché (quelle surprise!). Note: n'utilisez jamais ces outils pour des situations
réelles, avec des documents potentiellement confidentiels!
La corruption aurait pu avoir lieu si on ne regarde que les réponses DNS et qu'une des réponses
n'a pas été reçue
Paquet perdu?
Patcher le PDF
Les paquets font tous 32 octets (1 ligne dans hexeditor), ce qu'on voit dans le script Python
d'exfiltration, mais aussi dans le dump du paquet précédent celui perdu (11 0 obj <</Font)
Premier bloc
Seul manque donc le 4e caractère
En pratique, je n'ai pas vu qu'il était probable qu'un 0x52 ("R") soit attendu pour ce 4e caractère,
vu les 8 0 R et 10 0 R précédents!
Second bloc
Petit force brute
En pratique, seules 10 possibilités auraient pu être testées en voyant que le 4e caractère du premier
bloc devait être un "R"!
Flag
Les 10 fichiers patchés ont tous 0x52 soit "R" en 4e caractère du premier bloc,
comme attendu avec le recul (je n'avais pas vu, pendant le CTF, que ce caractère était sans doute "R")
Apparemment, d'autres ont flaggé ce challenge sans patcher le PDF mais en utilisant la table
de caractères du fichier