Skip to content
KitploitKITPLOIT
도구익스플로잇블로그
Log in
제출
도구익스플로잇블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

피드문의개인정보© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
moodle-grades-feedback-idor — Moodle 5.2.3 - 높음 - 원격 - IDOR - core_grades_get_feedback가 분리 그룹 검사를 건너뜀 | Kitploit
도구/GitHubGitHub/abraxas/moodle-grades-feedback-idor
Vulnerability AnalysisExploitationWeb Application ExploitationInformation GatheringSecurity VirtualizationWeb SecurityPenetration TestingLabs & Practice
GitHubabraxas/moodle-grades-feedback-idor

moodle-grades-feedback-idor

Moodle 5.2.3 - 높음 - 원격 - IDOR - core_grades_get_feedback가 분리 그룹 검사를 건너뜀

저장소 보기
33일 전아직 검토되지 않음

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

Abraxas Labs - moodle-grades-feedback-idor

abraxaslabs.tech  ·  github.com/abraxas  ·  @abraxas_null  ·  [email protected]  ·  moodle-grades-feedback-idor

moodle-grades-feedback-idor

Moodle LMS 5.2.3 - Moodle

Class: IDOR Reach: Remote

core_grades_get_feedback는 여전히 require_capability('gradereport/grader:view')만 호출합니다. 다른 성적 웹 서비스들은 MSA-26-0016 / MDL-88667 이후 groups_user_groups_visible / groups_group_visible 검사를 추가했습니다. 이 AJAX 서비스는 그렇지 않았습니다. JSON 응답에는 feedbacktext, fullname, picture, 그리고 첫 번째 신원 필드가 포함되어 돌아옵니다.

Separate groups에서 accessallgroups 권한이 없는 비편집 교사가 다른 학생의 userid를 POST하여 해당 그룹의 피드백을 읽습니다.

ID아직 CVE 없음
CWECWE-863 / CWE-200
CVSSMedium: 4.3 CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N
ProductMoodle
Affected5.2.3 태그 v5.2.3 (344232c15336c71b80f9aca8359ce0e0a9f3d116)
Authgradereport/grader:view 권한을 가진 비편집 교사, moodle/site:accessallgroups 권한은 없음. Separate groups 과정.
LicenseGNU Affero GPL v3.0
Lab127.0.0.1 전용

공격자가 할 수 있는 일

작성자: Separate-groups 과정에 등록된 비편집 교사로, Group A에만 속하고, grader view 권한이 있으며 access-all-groups 권한은 없습니다. 다른 등록 학생의 userid(순차 정수)를 선택하여 AJAX 서비스를 호출합니다. RCE가 아닙니다. LPE도 아닙니다. 점수 쓰기도 아닙니다.

PrivilegeMethod / sinkRecon / integrity / availabilityLab-proven or inferred
다른 그룹의 성적 피드백 읽기POST /lib/ajax/service.php?sesskey= core_grades_get_feedback {courseid, userid, itemid}ReconLab-proven. HTTP 200, error=false, feedbacktext에 MOODLE-GRADES-FEEDBACK-IDOR-WITNESS 포함
해당 학생의 신원 필드와 표시 이름 읽기동일 응답 additionalfield / fullname / pictureReconLab-proven. [email protected], fullname=Student Bravo
동일 과정에서 순차 userid 값 탐색동일 메서드, 추측한 idReconInferred. Lab에서는 시드된 Group B id 사용
형제 선택자를 통해 Group B 나열core_grades_get_gradable_users {courseid, groupid=B}n/aLab-proven closed. cannotaccessgroup
학생이 동일 피드백 서비스 호출student 역할, 동일 인자n/aLab-proven closed. nopermissions
동일 그룹 피드백 (Group A 학생)Student Alpha에 대한 교사 호출Recon (의도된 동작)Lab-proven allowed. HTTP 200, error=false
PHP RCE / OS LPE / 성적 쓰기n/an/aClosed. 이 잔여 취약점은 피드백과 프로필 필드의 읽기입니다

Separate groups가 없는 기본 Moodle, 또는 이미 moodle/site:accessallgroups 권한을 가진 교사는 이 잔여 취약점에 해당하지 않습니다. 해당 권한을 가진 편집 교사는 이미 모든 그룹을 볼 수 있습니다.

동일 핀의 잔여 취약점: Blackboard img 파일 읽기, enrol_database SQLi, 숨겨진 성적 항목.

발견 방법

MSA-26-0042/0043 이후 moodle/moodle v5.2.3을 고정했습니다. MSA-26-0016은 다른 성적 웹 서비스들의 그룹 검사를 닫았습니다. get_feedback.php는 그 대상에 포함되지 않았습니다. grader UI는 강화되었습니다. 이 AJAX 서비스는 그렇지 않았습니다.

이미 기록된 잘못된 방향: 형제 서비스 get_gradable_users의 누락을 전체 이야기로 취급한 것(그것은 이미 cannotaccessgroup을 던짐); 페이로드에 itemid가 있다고 해서 점수 쓰기라고 부른 것(이 서비스는 읽기임); 학생을 공격자로 가정한 것(nopermissions). 리버스 셸. 연극.

Lab

php:8.3-cli + MariaDB 11.4에서 실행되는 라이브 Moodle v5.2.3. 시드는 Separate-groups 과정, Group A에만 속한 교사, Group B에만 속한 학생 B, moodle/site:accessallgroups에 대한 CAP_PREVENT, 그리고 피드백이 witness인 수동 성적 항목을 구성합니다. how=live.

Compose는 ../../vendors/moodle/src를 /opt/moodle-pin으로 바인드 마운트합니다(경로는 lab/docker-compose.yml 기준 상대 경로). moodle/moodle 태그 v5.2.3을 해당 경로에 클론하거나 볼륨을 자신의 체크아웃으로 지정하세요. Moodle 트리는 이 팩에 포함되어 있지 않습니다.

python3 moodle-grades-feedback-idor-Abraxas-Labs.py

또는

cd lab
./run.sh

오직 http://127.0.0.1:19580만 대상으로 하세요. Compose 프로젝트 moodle-grades-feedback-idor. 실행 후 스택은 종료됩니다.

SUCCESS moodle-grades-feedback-idor how=live pin=v5.2.3 teacher-role=teacher accessallgroups=no groupmode=1 feedback-has-witness=yes [email protected] sibling-group-b=cannotaccessgroup student-call=nopermissions MOODLE-GRADES-FEEDBACK-IDOR-WITNESS

수정 방법

validate_context / require_capability 이후, 과정과 대상 사용자를 로드한 다음 groups_user_groups_visible($course, $userid)가 참이고 대상이 등록되어 있지 않으면 거부합니다. MDL-88667 이후의 gradereport_user 및 core_grades_get_gradable_users와 동일한 형태입니다.

참고 자료

  • github.com/moodle/moodle 태그 v5.2.3
  • get_feedback.php
  • 형제 서비스는 이미 다른 그룹을 거부함: get_gradable_users.php
  • 인접 패치됨 (이 서비스는 아님): MSA-26-0016 / MDL-88667
  • 동일 핀: moodle-blackboard-img · moodle-enrol-database-sqli · moodle-grades-gradeitems
  • CWE-863

License

GNU Affero GPL v3.0. LICENSE 참조. 루프백 Lab 전용. 보증 없음.

도구 다운로드