Aller au contenu

Réseau

Méthode HTTP qui dépose une représentation complète à l'URL indiquée : elle crée la ressource si elle n'existe pas, la remplace entièrement sinon.

Idempotence : Envoyer deux fois le même PUT laisse le serveur dans le même état qu'un seul envoi. POST n'offre pas cette garantie, d'où son usage pour les créations dont l'URL est choisie par le serveur.

Remplacement, pas retouche : PUT remplace la ressource entière ; les modifications partielles relèvent d'une autre méthode, prévue pour cela. Oublier un champ dans un PUT, c'est l'effacer avec la solennité d'un acte notarié.

Jeton IMDSv2 : Sur AWS, le service de métadonnées des instances EC2 exige un jeton obtenu par une requête PUT. Beaucoup de relais exploitables par SSRF ne savent émettre que des GET, ce qui complique l'attaque.

Exposition : Un serveur web qui accepte PUT sans authentification permet à quiconque de déposer des fichiers, y compris du code exécutable.

Ce qui arrive si on s'en passe

Un serveur web qui accepte PUT sans authentification laisse quiconque déposer des fichiers à l'URL de son choix, y compris un script que le serveur exécutera ensuite : l'attaquant n'a plus besoin de chercher une faille, on lui a ouvert un guichet de dépôt. Sur EC2, se passer de l'IMDSv2, qui exige un jeton obtenu par PUT, rend en outre les identifiants du rôle IAM accessibles à toute SSRF capable d'émettre un simple GET. Ignorer enfin que PUT remplace la ressource entière efface les champs oubliés dans la requête. L'idempotence garantit qu'on peut répéter l'erreur sans l'aggraver, maigre consolation.

Explication de la marmotte

Quand un programme parle à un site web, il utilise quelques verbes simples : « donne-moi », « prends ça », « range ceci à cet endroit précis ». Ce verbe-là veut dire : « voici un document complet, range-le exactement à cette place ». S'il n'y avait rien à cette place, le document est créé. S'il y avait déjà quelque chose, l'ancien est remplacé en entier par le nouveau. Et si la même demande arrive deux fois, le résultat reste le même, comme reposer deux fois un livre sur la même étagère.

← Tout le glossaire