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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
moodle-blackboard-img — Moodle 5.2.3 - 高 - リモート - パス - Blackboard img src がインポートツリー外のファイルをコピーする | Kitploit
ツール/GitHubGitHub/abraxas/moodle-blackboard-img
脆弱性分析エクスプロイトウェブアプリケーション悪用情報収集ウェブセキュリティペネトレーションテストラボと実践
GitHubabraxas/moodle-blackboard-img

moodle-blackboard-img

Moodle 5.2.3 - 高 - リモート - パス - Blackboard img src がインポートツリー外のファイルをコピーする

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

人気

すべて見る →

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

すべてのツールを探索

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

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

Abraxas Labs - moodle-blackboard-img

abraxaslabs.tech  ·  github.com/abraxas  ·  @abraxas_null  ·  [email protected]  ·  moodle-blackboard-img

moodle-blackboard-img

Moodle LMS 5.2.3 - Moodle

クラス: ファイル読み取り 到達範囲: リモート

qformat_blackboard_six_base::text_field は img src を PARAM_PATH なしで $this->filebase に結合します。その後 store_file_for_text_field がそのパスをユーザーのドラフトファイルエリアにコピーします。同系統の get_filecontent はすでに clean_param($path, PARAM_PATH) でジェイルしています。MSA-26-0012 はデータベースアクティビティのインポートを PARAM_FILE でジェイルしました。Blackboard の img src はその対象に含まれていませんでした。

Blackboard zip をインポートできる教師が <img src="https://raw.githubusercontent.com/html/config.php"> を仕込みます。ドラフトの「画像」は config.php です。学生はインポートできません。

IDCVE 未割当
CWECWE-22 / CWE-73
CVSSMedium: 6.5 CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N
製品Moodle
影響バージョン5.2.3 タグ v5.2.3 (344232c15336c71b80f9aca8359ce0e0a9f3d116)
認証教師 (問題バンク / レッスンの Blackboard インポート)
ライセンスGNU Affero GPL v3.0
ラボ127.0.0.1 のみ

攻撃者ができること

書き込み者: Blackboard zip を問題バンク (またはレッスン) にインポートできる教師。典型的な狙いは PHP ユーザーとしての config.php (DB パスワード) です。2 つ目の残存脆弱性を連鎖させない限り RCE ではありません。LPE でもありません。

権限メソッド / シンク偵察 / 完全性 / 可用性ラボ実証または推測
img src の ../ を介して PHP ユーザーが開けるファイルを読み取るtext_field が $this->filebase . '/' . $path を結合; store_file_for_text_field がドラフトエリアにコピー偵察 (ファイルバイト)ラボ実証済み。ドラフトのバイトが /var/www/html/config.php と一致し、MOODLE-BLACKBOARD-IMG-WITNESS を含む
そのドラフトを「画像」としてダウンロードドラフト itemid + 書き換えられた @@PLUGINFILE@@ ファイル名偵察ラボ実証済み。GET /draft が 298 バイトを返し、sha256 が config.php と一致
後でインポートされた問題を開ける者同じドラフト / pluginfile偵察推測。ラボは教師ドラフトの一致で停止
学生のインポート同じ zip、role=studentn/aラボ実証済み クローズ。HTTP 403 teacher-only
clean_param($path, PARAM_PATH) を通る同じパスガジェット jail=1n/aラボ実証済み クローズ。一致なし、witness なし、パスは filebase 配下に留まる
PHP RCE / OS LPEn/an/aクローズ。この残存脆弱性はファイルバイトをドラフトにコピーするだけ。実行はしない

Blackboard インポートのないデフォルトの Moodle はこのバグの対象ではありません。MSA-22-0016 は baseurl のみをクリーンアップしました。

同じピンの残存脆弱性: enrol_database SQLi、grades feedback IDOR、hidden grade items。

発見の経緯

MSA-26-0042/0043 の後、moodle/moodle v5.2.3 をピン留めしました。MSA-26-0012 はデータベースアクティビティのインポートをジェイルしました。次に Blackboard を調査したのは、get_filecontent() がすでに PARAM_PATH を認識していたのに text_field() が依然として生の結合を行っていたためです。

すでに記録済みの誤った道: 学生のインポートをリークとみなすこと (実際は 403)。コピーされたファイルが PHP だからといってこれを RCE と呼ぶこと (ドラフトはバイトを保存するだけで include はしない)。MSA-22-0016 が作業を完了したと仮定すること (baseurl のみ)。リバースシェル。茶番。

ラボ

ピンの text_field / store_file_for_text_field を忠実に再現したガジェットであり、完全な Moodle PHP アプリではありません。how=gadget。

python3 moodle-blackboard-img-Abraxas-Labs.py

または

cd lab
./run.sh

対象は http://127.0.0.1:19560 のみ。Compose プロジェクト moodle-blackboard-img。実行後にスタックは破棄されます。

SUCCESS moodle-blackboard-img how=gadget pin=v5.2.3 teacher-import=yes draft-match-config=yes student=403 param-path-jail=yes MOODLE-BLACKBOARD-IMG-WITNESS

修正

img src に clean_param($path, PARAM_PATH) を適用し、その後 realpath が realpath($this->filebase) 配下に留まることを確認します。get_filecontent() と同じ形です。

参考資料

  • github.com/moodle/moodle タグ v5.2.3
  • formatbase.php (text_field、store_file_for_text_field)
  • format.php (get_filecontent はすでに PARAM_PATH を使用)
  • 近傍で修正済み (この結合ではない): MSA-26-0012
  • 同じピン: moodle-enrol-database-sqli · moodle-grades-feedback-idor · moodle-grades-gradeitems
  • CWE-22

ライセンス

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

ツールをダウンロード