hacktricks/pentesting-web/parameter-pollution.md
2023-06-03 13:10:46 +00:00

5.6 KiB

☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥

Copié de https://medium.com/@shahjerry33/http-parameter-pollution-its-contaminated-85edc0805654

Résumé :

La pollution des paramètres HTTP (HPP) consiste à polluer les paramètres HTTP d'une application web pour accomplir une tâche malveillante spécifique. Cela consiste à manipuler la façon dont un site Web traite les paramètres qu'il reçoit lors des demandes HTTP. Cela change le comportement d'un site Web par rapport à celui prévu. La pollution des paramètres HTTP est une attaque simple mais efficace.

Lorsque vous polluez un paramètre, le code s'exécute uniquement côté serveur, ce qui est invisible pour nous, mais nous pouvons voir les résultats sur notre écran. Le processus entre les deux est une boîte noire.

Par exemple, il y a une URL https://www.anybank.com/send qui a trois paramètres :

  1. from :
  2. to :
  3. amount :

URL : https://www.anybank.com/send/?from=accountA&to=accountB&amount=10000

Maintenant, c'est une URL normale qui procédera à une transaction de 10000 de accountA à accountB, mais que se passe-t-il si nous ajoutons un autre paramètre identique "from :"

Ainsi, l'URL sera comme https://www.anybank.com/send/?from=accountA&to=accountB&amount=10000&from=accountC

Lorsque cette URL procédera à une transaction de 10000, elle sera déduite du compteC plutôt que du compteA. C'est ainsi que vous manipulez les paramètres dans l'attaque de pollution des paramètres HTTP. Bien que la portée de cette vulnérabilité ne se limite pas seulement à la demande GET, vous pouvez également effectuer cette attaque sur une demande basée sur POST. Vous pouvez essayer cette vulnérabilité sur de nombreux endroits comme le changement de mot de passe, 2FA, les commentaires, le téléchargement de photo de profil, sur un paramètre où la clé API est passée, OTP, etc.

Lorsque vous manipulez un paramètre, sa manipulation dépend de la façon dont chaque technologie Web analyse ses paramètres. Vous pouvez identifier les technologies Web en utilisant "Wappalyzer". Ci-dessous se trouve la capture d'écran de certaines technologies et de leur analyse de paramètres.

Technologies et leur analyse de paramètres

Image for post

Je voudrais partager l'une de mes découvertes de HPP où j'ai pu prendre le contrôle d'un compte en utilisant cette vulnérabilité.

Comment j'ai trouvé cette vulnérabilité ?

  1. Je suis allé sur une page de connexion de ce programme, il a demandé un OTP pour la connexion

Envoyer OTP

Image for post

  1. J'ai tapé un e-mail et cliqué sur "Envoyer un mot de passe unique"

  2. J'ai intercepté la demande en utilisant Burp Suite et ajouté un autre e-mail en utilisant le même paramètre (j'ai créé deux e-mails à des fins de test)

Demande Burp

Image for post

  1. J'ai reçu un OTP de shrey……@gmail.com sur mon autre compte radhika…..@gmail.com OTP

Image for post

  1. J'ai copié l'OTP et suis allé sur shrey….@gmail.com sur l'écran de connexion de ce programme, j'ai entré cet OTP et j'étais dans le compte.

Prise de contrôle de compte

Image for post

Ce qui s'est passé ici, c'est que l'application back-end a pris la valeur du premier paramètre "email" pour générer un OTP et a utilisé la valeur du deuxième paramètre "email" pour fournir la valeur, ce qui signifie qu'un OTP de shrey….@gmail.com a été envoyé à radhika….@gmail.com.

REMARQUE : Ici, dans une image à l'étape 4 où j'ai reçu un OTP à radhika….@gmail.com, j'étais confus car le message disait "Hi Radhika", donc j'ai pensé que le paramètre n'était pas pollué et que l'OTP était pour radhika….@gmail.com, mais quand j'ai essayé l'OTP sur shrey….@gmail.com, cela a fonctionné.