hacktricks/pentesting-web/parameter-pollution.md

7.8 KiB

Pollution de paramètres

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

Copié depuis 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 requêtes HTTP. Cela modifie le comportement d'un site web par rapport à son comportement 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 à l'écran. Le processus intermédiaire 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 effectuera 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 effectuera 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 une attaque de pollution des paramètres HTTP. Bien que la portée de cette vulnérabilité ne se limite pas uniquement à une requête GET, vous pouvez également effectuer cette attaque sur une requête basée sur POST. Vous pouvez essayer cette vulnérabilité à de nombreux endroits comme le changement de mot de passe, la 2FA, les commentaires, le téléchargement de photo de profil, sur un paramètre où la clé API est transmise, 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 pour l'article

J'aimerais 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 ai-je 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 un OTP

Image pour l'article

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

  2. J'ai intercepté la requête 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) Requête Burp

Image pour l'article

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

Image pour l'article

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

Image pour l'article

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

NOTE : Ici, sur l'image de la 4ème étape où j'ai reçu un OTP à radhika….@gmail.com, j'étais confus car le message disait Salut Radhika, donc je pensais 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, ça a fonctionné.

Flask & PHP

Dans ce compte rendu, vous pouvez voir comment une requête HTTP comme a=1&a=2 sera interprétée différemment par Flask et PHP s'exécutant sur un serveur Apache HTTP. Dans Flask, le paramètre sera 1 (première occurrence) tandis que dans PHP, il sera 2 (dernière occurrence).

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