Solution de bluesheet pour Revision

web crypto

17 novembre 2023

Table des matières

Revision

50 points

Enoncé

La société Semper est spécialisée en archivage de documents électroniques. Afin de simplifier le travail des archivistes, un outil simple de suivi de modification a été mis en ligne. Depuis quelques temps néanmoins, cet outil dysfonctionne. Les salariés se plaignent de ne pas recevoir tous les documents et il n’est pas rare que le système plante. Le développeur de l’application pense avoir identifié l’origine du problème. Aidez-le à reproduire le bug.

Ma solution

Lors de la lecture du code source du challenge, mon oeil est directement attiré par le commentaire # Debug debug..., qui explique un bout de code lançant une exception nous donnant le flag si le set attachments ne contient qu’un élément, c’est à dire si f1_hash == f2_hash.

On en conclut donc que pour avoir le flag, il faut trouver 2 PDFs différents qui ont le même hash. Mais une vérification supplémentaire fait qu’on ne peut pas envoyer 2 fois le même pdf. Il faut donc trouver une collision SHA1 avec 2 fichiers PDF.

SHA-1 étant “cassé” depuis maintenant quelques années, une simple recherche google (sha1 collision pdf generator online) nous amène sur cette page qui permet de générer de tels PDFs. On prend 2 images plutôt légères (limite de taille des pdfs: 2Mo), et on obtient 2 pdfs. On upload ces pdfs sur le challenge, et bingo on a le flag !