Skip to content
KitploitKITPLOIT
ToolsExploitsBlog
Log in
Einreichen
ToolsExploitsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

FeedsKontaktDatenschutz© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
moodle-blackboard-img — Moodle 5.2.3 - Hoch - Remote - Pfad - Blackboard img src kopiert Dateien außerhalb des Importbaums | Kitploit
Tools/GitHubGitHub/abraxas/moodle-blackboard-img
SchwachstellenanalyseExploitationWebanwendungs-ExploitationInformationsbeschaffungWebsicherheitPenetrationstestsLabs & Praxis
GitHubabraxas/moodle-blackboard-img

moodle-blackboard-img

Moodle 5.2.3 - Hoch - Remote - Pfad - Blackboard img src kopiert Dateien außerhalb des Importbaums

Repository anzeigen
2vor 4 TagenNoch nicht geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

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

Klasse: Datei lesen Reichweite: Remote

qformat_blackboard_six_base::text_field fügt img src an $this->filebase an, ohne PARAM_PATH. store_file_for_text_field kopiert diesen Pfad dann in den Draft-Dateibereich des Benutzers. Das verwandte get_filecontent sperrt bereits mit clean_param($path, PARAM_PATH). MSA-26-0012 sperrte den Datenbank-Aktivitäts-Import mit PARAM_FILE. Blackboard img src war nicht in diesem Set.

Ein Lehrer, der eine Blackboard-Zip importieren kann, platziert <img src="https://raw.githubusercontent.com/html/config.php">. Das Draft-"Bild" ist config.php. Schüler können nicht importieren.

IDnoch keine CVE
CWECWE-22 / CWE-73
CVSSMittel: 6.5 CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N
ProduktMoodle
Betroffen5.2.3 Tag v5.2.3 (344232c15336c71b80f9aca8359ce0e0a9f3d116)
AuthLehrer (Fragenbank / Lektion Blackboard-Import)
LizenzGNU Affero GPL v3.0
Labnur 127.0.0.1

Was ein Angreifer tun kann

Schreibender: ein Lehrer, der eine Blackboard-Zip in die Fragenbank (oder Lektion) importieren kann. Typische Beute ist config.php (DB-Passwort) als der PHP-Benutzer. Kein RCE, es sei denn, sie verketten einen zweiten Überrest. Kein LPE.

BerechtigungMethode / SinkRecon / Integrität / VerfügbarkeitLab-bewiesen oder abgeleitet
Eine Datei lesen, die der PHP-Benutzer öffnen kann, via ../ in img srctext_field fügt $this->filebase . '/' . $path zusammen; store_file_for_text_field kopiert in den Draft-BereichRecon (Dateibytes)Lab-bewiesen. Draft-Bytes stimmen mit /var/www/html/config.php überein und enthalten MOODLE-BLACKBOARD-IMG-WITNESS
Diesen Draft als das "Bild" herunterladenDraft-itemid + umgeschriebener @@PLUGINFILE@@-DateinameReconLab-bewiesen. GET /draft lieferte 298 Bytes, sha256 gleich config.php
Jeder, der später die importierte Frage öffnen kannDerselbe Draft / pluginfileReconAbgeleitet. Lab stoppte beim Lehrer-Draft-Match
Schüler-Importdieselbe Zip, role=studentn/aLab-bewiesen geschlossen. HTTP 403 teacher-only
Derselbe Pfad durch clean_param($path, PARAM_PATH)Gadget jail=1n/aLab-bewiesen geschlossen. Kein Match, kein Witness, Pfad bleibt unter filebase
PHP RCE / OS LPEn/an/aGeschlossen. Dieser Überrest kopiert Dateibytes in einen Draft. Er führt sie nicht aus

Standard-Moodle ohne Blackboard-Import ist nicht dieser Bug. MSA-22-0016 bereinigte nur baseurl.

Gleiche Pin-Überreste: enrol_database SQLi, grades feedback IDOR, hidden grade items.

Wie ich es gefunden habe

Ich pinnte moodle/moodle v5.2.3 nach MSA-26-0042/0043. MSA-26-0012 sperrte den Datenbank-Aktivitäts-Import. Ich blieb als Nächstes bei Blackboard, weil get_filecontent() bereits von PARAM_PATH wusste und text_field() immer noch einen rohen Join machte.

Bereits dokumentierte Irrwege: den Schüler-Import als das Leck zu behandeln (er ist 403); dies RCE zu nennen, weil die kopierte Datei PHP ist (der Draft speichert Bytes, er includet sie nicht); anzunehmen, MSA-22-0016 hätte die Arbeit erledigt (nur baseurl). Eine Reverse Shell. Theater.

Lab

Getreues Gadget des Pins text_field / store_file_for_text_field, keine vollständige Moodle-PHP-App. how=gadget.

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

oder

cd lab
./run.sh

Ziel nur http://127.0.0.1:19560. Compose-Projekt moodle-blackboard-img. Stack wird nach dem Lauf abgebaut.

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

Der Fix

clean_param($path, PARAM_PATH) auf img src, dann muss realpath unter realpath($this->filebase) bleiben. Gleiche Form wie get_filecontent().

Referenzen

  • github.com/moodle/moodle Tag v5.2.3
  • formatbase.php (text_field, store_file_for_text_field)
  • format.php (get_filecontent verwendet bereits PARAM_PATH)
  • In der Nähe gepatcht (nicht dieser Join): MSA-26-0012
  • Gleicher Pin: moodle-enrol-database-sqli · moodle-grades-feedback-idor · moodle-grades-gradeitems
  • CWE-22

Lizenz

GNU Affero GPL v3.0. Siehe LICENSE. Nur Loopback-Lab. Keine Gewährleistung.

Tool herunterladen