Skip to content
KitploitKITPLOIT
ツールエクスプロイトブログ
Log in
提出
ツールエクスプロイトブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

フィードお問い合わせプライバシー© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
moodle-grades-feedback-idor — Moodle 5.2.3 - 高 - リモート - IDOR - core_grades_get_feedback が separate-groups チェックをスキップする | Kitploit
ツール/GitHubGitHub/abraxas/moodle-grades-feedback-idor
脆弱性分析エクスプロイトウェブアプリケーション悪用情報収集セキュリティ仮想化ウェブセキュリティペネトレーションテストラボと実践
GitHub
abraxas/moodle-grades-feedback-idor

moodle-grades-feedback-idor

Moodle 5.2.3 - 高 - リモート - IDOR - core_grades_get_feedback が separate-groups チェックをスキップする

リポジトリを見る
34日前未レビュー

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有

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') を呼び出すだけである。他の成績 Web サービスは MSA-26-0016 / MDL-88667 の後に groups_user_groups_visible / groups_group_visible を獲得した。この AJAX サービスは獲得していない。JSON は feedbacktext、fullname、picture、および最初の識別フィールドを返す。

Separate groups において、accessallgroups を持たない非編集教員が、別の学生の userid を POST し、そのグループのフィードバックを読み取る。

IDCVE 未割当
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 のみ

攻撃者ができること

Writer: 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 file read、enrol_database SQLi、hidden grade items。

発見の経緯

MSA-26-0042/0043 の後、moodle/moodle v5.2.3 をピン留めした。MSA-26-0016 は他の成績 Web サービスにおけるグループチェックを塞いだ。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

ライセンス

GNU Affero GPL v3.0。LICENSE を参照。ループバック Lab のみ。無保証。

ツールをダウンロード