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: noneavec les bons champsiss,aud,emailetsubest 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
roleouisAdmindans 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.