Niveau "High"

Quelles nouveautés pour ce niveau "High" ? :

Ici pas d'étape de confirmation, le changement du mot de passe est directement effectué :

La seule requĂȘte effectuĂ©e est la suivante :

J'identifie rapidement la présence d'un jeton anti-CSRF nommé user_token, mais plus intéressant ici, la réponse contient un commentaire HTML :

Il s'agit sans doute d'un contournement mis en place par le dĂ©veloppeur afin de tester sa feature sans avoir Ă  rĂ©soudre le Captcha. Je forge donc une requĂȘte dont la valeur du Captcha (le paramĂštre g-recaptcha-response ) est hidd3n_valu3 ainsi qu'un entĂȘte User-Agent possĂ©dant la valeur reCAPTCHA :

Le changement du mot de passe fonctionne :

A cause de la présence du jeton anti-CSRF il me faut exploiter une faille XSS sur l'application cible afin de récupérer un jeton puis seulement effectuer l'attaque CSRF.

Pour cela, le challenge XSS Stored sera utilisé et l'injection se fera en niveau "Low". Par contre, il ne faudra pas oublier de repasser en niveau "High" pour l'exploitation du contournement du Captcha.

Voici la premiĂšre requĂȘte XHR :

Une fois le jeton rĂ©cupĂ©rĂ©, la seconde requĂȘte effectuĂ©e sera :

L'exploitation de la vulnĂ©rabilitĂ© ne fonctionne pas sous Chrome (testĂ©e sur la version 78), car le navigateur interdit la modification de l'entĂȘte User-Agent :

Mais cela fonctionne sur Firefox (testée sur la version 70) :

Mis Ă  jour