404CTF - Sécurité Matérielle 404CTF - Sécurité Matérielle

404CTF - Sécurité Matérielle

Sécurité Matérielle

BipBoupCircuit (Intro)

Dans les méandres d’un laboratoire oublié, une boîte a été retrouvée, très abîmée, contenant un circuit électronique à découvert… Aucun doute, il s’agit bien d’un comparateur à 8 bits ! Votre première tâche consiste à déterminer quelle valeur sur 8 bits doit être fournie en entrée pour que le comparateur valide le code et ouvre la boîte. Cependant, malgré la découverte du bon code, la boîte reste verrouillée. Trop de tentatives incorrectes ont dû activer une protection interne. Vous devez donc, en laissant toutes les entrées à 00000000, réaliser une injection de faute, c’est à dire modifiez la sortie du comparateur 8 bits mais avant le vérificateur afin de forcer le vérificateur à considérer l’entrée 00000000 comme valide, puis relever l’état des LEDs en sortie après l’attaque.

Format du flag : 404CTF{code-correct(A0/A1/A2..A7)_led-allumées-après-injection-de-haut-en-bas} Exemple de flag : 404CTF{00000000_000110010101101}

Résolution

On nous donne un circuit consituté de deux comparateurs en cascade, dont les bits B0->B7 sont fixes:

Schéma

Le vérificateur relie ses 3 premières broches à un validateur, qui inverse ses broches 2 et 3 et sort sa broche 1:

Schéma

Puis, tout à droite, le validator qui annonce si on a le bon code:

Schéma

L’énnoncé nous a donc demandé deux choses:

  • Le code originel
  • L’état des LEDs après injection

Pour le premier point, la solution est assez simple: on cherche A0..A7 = B0..B7.

En ayant déjà les bits B0..B7 = 01111100, alors on peut trouver A0..A7 = 01111100.

La première partie du flag est donc 404CTF{01111100_...}.

Pour la seconde partie, on doit réaliser une injection afin de trouver l’état des LEDs.

Alors, les premières tentatives me demandent de remonter le schéma, et essayer de reproduire A = B.

Sur un coup de tête, la solution est probablement de simplement couper l’arrivée de A > B et d’injecter la tension dans la première patte du vaidateur:

Schéma

Le flag serait alors 404CTF{01111100_100100100111100}, et c’est ça!

Je ne suis pas sûr de la façon dont j’ai résolu ce chall cependant.


← Back to blog