Aller au contenu
Tous les challenges
Web En cours Facile · 1 800 m

ID, please

Pawthority : une connexion Google qui ne vérifie pas la signature du JWT.

Auteur
Glodi
ID CTFd
14

Challenge non résolu pendant le concours : cette page résume les pistes explorées, pas une solution.

Le défi

Pawthority est une application web avec une inscription classique et une connexion « via Google ». Le flag se trouve sur une route réservée au rôle administrateur.

Ce qui a été trouvé

  • La connexion sociale ne vérifie pas la signature du jeton d’identité : un JWT alg: none avec les bons champs iss, aud, email et sub est accepté, avec la réponse « legacy compatibility login ».
  • On peut ainsi se connecter en tant que n’importe quel compte Google, y compris celui de l’adresse admin affichée dans le pied de page. Mais ce compte est créé (ou retrouvé) avec le rôle user.
  • Le compte administrateur est un compte « mot de passe » distinct : se faire passer pour son email ne suffit pas.

Pistes écartées

  • Ajouter role ou isAdmin dans le JWT ou à l’inscription : ignoré.
  • En-têtes et paramètres X-Role, memberId, etc. : ignorés.
  • Confusion d’algorithme HS256 avec la clé publique Google, injections NoSQL/SQL sur sub : sans effet.
  • Collisions d’identifiants de membres : aucune sur 120 inscriptions.

Où ça bloque

Le service est fortement limité en débit, puis est tombé en 502 pendant les essais. La piste restante : trouver le sub exact du compte Google rattaché à l’administrateur.