C.S.R.F. & Media Type
L’une des erreurs classiques est d’accepter des media types autres que application/*json
(header Content-Type
).
Sans aucune autre erreur de configuration C.O.R.S., l’acceptation du media typeapplication/x-www-form-urlencoded
permet à l’attaquant de créer un formulaire et de déclencher une simple requête POST.
Dans ce cas, la plupart des frameworks (Ex. : expressjs) récupèrent un objet :
Il ne faut donc activer que le parser JSON.
… mais supposons qu’il soit activé sur tous les "media types" et plus particulièrement text/plain
pour simplifier la vie des développeurs "client-side".
1. L’attaquant n’a plus qu’à adapter légèrement le formulaire précédent :
2. Cela va alors envoyer le "body" suivant :
3. L’API va alors "parser" le contenu suivant :
La vérification du media type des requêtes doit donc être rigoureuse.
Dernière mise à jour