Contexte#
PATCH n'est pas uniforme d'un framework à l'autre : JSON Merge Patch, fusion superficielle personnalisée et sémantique null pour supprimer diffèrent. Un client peut vouloir modifier name tandis que la fusion écrase balance ou role si ces clés sont acceptées dans l'objet d'entrée de la fusion.
Théorie#
La même classe de mass assignment apparaît lorsque l'opération est « partielle » mais que la forme de l'objet est le modèle complet. null et une clé absente signifient souvent des choses différentes ; les attaquants testent les deux.
Pratique#
Envoyer la forme complète du document avec une clé sensible supplémentaire#
- En laboratoire, faites un
GETde l'objet, copiez le JSON, ajoutez une clécreditLimitoustatusqui devrait être réservée au serveur, et envoyez unPATCH. Comparez leGETsuivant.
Outils#
- curl
- Burp Suite