Salut,
Nous développons un code JavaScript pour un projet qui doit nous permettre de modifier le mot de passe d'un utilisateur en utilisant une faille XSS.
Voici le code :
J'ai trouvé que le problème viendrait du caractère asynchrone de l'exécution car tout est exécuté en même temps et Javacript n'attend pas de recevoir les retours des différentes sous-fonctions pour avancer.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28 var id_membre = get_id(); alert('id membre=' + id_membre); function get_id() { var xhr_object = null; //déclaration de l'objet xhr_object var methode = 'GET'; var page = './profil.php'; xhr_object.open(methode, page, true); xhr_object.onreadystatechange = function() { if(xhr_object.readyState == 4) { if(xhr_object.status == 200) { var ancre1 = xhr_object.responseText.indexOf('<input type="hidden" name="id" value="'); var ancre2 = xhr_object.responseText.indexOf('" />', ancre1); var id = xhr_object.responseText.substring(ancre1+38, ancre2); return id; } else { } } else {} }; xhr_object.send(null); }
Ainsi, lors de l'exécution, le script renvoie "undefined" comme valeur pour le paramètre "id_membre" sans attendre le retour du substring. Savez-vous comment résoudre ce problème simplement ?
Merci d'avance de vos réponses
Partager