Skip to content
KitploitKITPLOIT
StrumentiExploitsBlog
Log in
Invia
StrumentiExploitsBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

FeedContattoPrivacy© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
moodle-blackboard-img — Moodle 5.2.3 - Alto - Remoto - Percorso - Blackboard img src copia file al di fuori dell'albero di importazione | Kitploit
Strumenti/GitHubGitHub/abraxas/moodle-blackboard-img
Analisi delle VulnerabilitàExploitSfruttamento di Applicazioni WebRaccolta InformazioniSicurezza WebPenetration TestingLab e Pratica
GitHubabraxas/moodle-blackboard-img

moodle-blackboard-img

Moodle 5.2.3 - Alto - Remoto - Percorso - Blackboard img src copia file al di fuori dell'albero di importazione

Vedi Repository
24 giorni faNon ancora revisionato

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

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

Classe: Lettura di file Raggiungibilità: Remota

qformat_blackboard_six_base::text_field unisce img src a $this->filebase senza alcun PARAM_PATH. store_file_for_text_field copia poi quel percorso nella filearea della bozza utente. get_filecontent, della stessa famiglia, si protegge già con clean_param($path, PARAM_PATH). MSA-26-0012 ha protetto l'importazione delle attività di database con PARAM_FILE. L'img src di Blackboard non era in quell'insieme.

Un insegnante che può importare uno zip Blackboard inserisce <img src="https://raw.githubusercontent.com/html/config.php">. La "immagine" della bozza è config.php. Gli studenti non possono importare.

IDnessuna CVE al momento
CWECWE-22 / CWE-73
CVSSMedio: 6.5 CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N
ProdottoMoodle
Affetto5.2.3 tag v5.2.3 (344232c15336c71b80f9aca8359ce0e0a9f3d116)
Authinsegnante (banca domande / importazione Blackboard della lezione)
LicenzaGNU Affero GPL v3.0
Labsolo 127.0.0.1

Cosa può fare un attaccante

Scrittore: un insegnante che può importare uno zip Blackboard nella banca domande (o lezione). Il premio tipico è config.php (password del DB) come utente PHP. Non è RCE a meno che non concateni un secondo residuo. Non è LPE.

PrivilegioMetodo / sinkRicognizione / integrità / disponibilitàProvato in lab o dedotto
Leggere un file che l'utente PHP può aprire, tramite ../ in img srctext_field unisce $this->filebase . '/' . $path; store_file_for_text_field copia nella bozzaRicognizione (byte del file)Provato in lab. I byte della bozza corrispondono a /var/www/html/config.php e contengono MOODLE-BLACKBOARD-IMG-WITNESS
Scaricare quella bozza come "immagine"itemid della bozza + nome file @@PLUGINFILE@@ riscrittoRicognizioneProvato in lab. GET /draft ha restituito 298 byte, sha256 uguale a config.php
Chiunque possa in seguito aprire la domanda importataStessa bozza / pluginfileRicognizioneDedotto. Il lab si è fermato alla corrispondenza della bozza dell'insegnante
Importazione studentestesso zip, role=studentn/aProvato in lab chiuso. HTTP 403 teacher-only
Stesso percorso tramite clean_param($path, PARAM_PATH)gadget jail=1n/aProvato in lab chiuso. Nessuna corrispondenza, nessun witness, il percorso resta sotto filebase
RCE PHP / LPE OSn/an/aChiuso. Questo residuo copia i byte del file in una bozza. Non li esegue

Un Moodle predefinito senza importazione Blackboard non è affetto da questo bug. MSA-22-0016 ha ripulito solo baseurl.

Altri residui dello stesso pin: enrol_database SQLi, grades feedback IDOR, hidden grade items.

Come l'ho trovato

Ho fissato moodle/moodle v5.2.3 dopo MSA-26-0042/0043. MSA-26-0012 ha protetto l'importazione delle attività di database. Mi sono concentrato su Blackboard perché get_filecontent() conosceva già PARAM_PATH e text_field() faceva ancora un join grezzo.

Vicoli ciechi già registrati: considerare l'importazione studente come la falla (è 403); definire questo RCE perché il file copiato è PHP (la bozza memorizza i byte, non li include); presumere che MSA-22-0016 avesse completato il lavoro (solo baseurl). Una reverse shell. Teatro.

Lab

Gadget fedele del pin text_field / store_file_for_text_field, non una completa applicazione PHP Moodle. how=gadget.

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

oppure

cd lab
./run.sh

Target solo http://127.0.0.1:19560. Progetto Compose moodle-blackboard-img. Lo stack viene smontato dopo l'esecuzione.

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

La correzione

clean_param($path, PARAM_PATH) su img src, poi realpath deve restare sotto realpath($this->filebase). Stessa forma di get_filecontent().

Riferimenti

  • github.com/moodle/moodle tag v5.2.3
  • formatbase.php (text_field, store_file_for_text_field)
  • format.php (get_filecontent usa già PARAM_PATH)
  • Vicino corretto (non questo join): MSA-26-0012
  • Stesso pin: moodle-enrol-database-sqli · moodle-grades-feedback-idor · moodle-grades-gradeitems
  • CWE-22

Licenza

GNU Affero GPL v3.0. Vedi LICENSE. Solo lab su loopback. Nessuna garanzia.

Scarica lo strumento