Moodle에서 교사의 권한 승격이 가능한 취약점을 확인해 보세요.



취약점을 시도할 때는 항상 관리하는 검증 시스템에서 실행해야 합니다.

이 취약점에 대하여



2020년 7월 12일에 있던 Moodle 3.9.1을 비롯한 모든 업데이트에서 수정된 "코스 내에서 교사 역할을 가진 사용자가 원래 권한을 초과하는 역할 할당 가능"취약점. 즉,이 취약점의 영향을받는 것은 악의적 인 사용자가 교사로 코스에 할당되는 경우입니다.

Moodle에서는 일반적으로 교사 역할을 가진 사용자가 코스 내에서 학생이나 편집 권한이 없는 교사(TA)를 할당할 수 있더라도 다른 사용자에게 교사 역할을 할당하거나 교사 역할을 박탈할 수 있습니다. 는 할 수 없게 되어 있다. 관리자 등의 추가 권한에 대해서도 마찬가지입니다.
그러나, 이 권한 체크의 미비한 취약성을 이용함으로써, 자신에게 매니저 권한을 할당하는 것이 가능해지고, 다른 교사의 권한을 박탈하는 것도 가능해진다. 라고는 해도 시스템 관리자에게는 이길 수 없기 때문에, 3일 천하에 끝나는 것이지만…

취약점을 시도해 보기



취약성이 있다고 수정된 부분 로부터, 롤 할당을 Ajax로 실시하는 곳이라고 알 수 있다. 적절한 테스트 환경을 만들고 교사 1과 교사 2를 할당해 봅니다. 여기서 교사 1이 악의있는 ​​사용자라고 가정합니다.



교사 1에서 원하는 코스에 액세스하여 사용자를 등록하는 모달 윈도우를 열고 적당한 사용자를 학생으로 등록해 본다.



이때 웹브라우저 개발 툴에서 요청을 확인하면 https://<MOODLE.YOURDOMAIN>/enrol/manual/ajax.php?mform_showmore_main=0&id=2&action=enrol&enrolid=1&sesskey=<SESSION_KEY>&_qf__enrol_manual_enrol_users_form=1&mform_showmore_id_main=0&userlist[]=3&roletoassign=5&duration=&startdate=4 와 같은 URI에 대한 GET 요청을 확인할 수 있다.
여기서 userlist [] = 3은 대상 사용자의 ID이고 roletoassign = 5는 역할 ID입니다. 다른 파라미터는 설명 생략.

이 URI 중 사용자 ID를 자신의 ID로, 롤 ID를 1로 변경하여 웹 브라우저의 주소 표시줄에 돌진하여 요청을 보냅니다. 왠지 XMLHttpRequest에 없어도 문제 없다. 웹 브라우저의 리로드 기능 등으로 페이지를 갱신하면, 매니저 권한이 부여되어 있는 것을 알 수 있다. 매니저 권한이 할당되어 있으므로 방해한 교사 2를 코스에서 지울 수 있습니다.



로그에서 확인



로그를 확인하면 변경한 이력이 제대로 남아 있다.

좋은 웹페이지 즐겨찾기