Skip to content
KitploitKITPLOIT
HerramientasExploitsBlog
Log in
Enviar
HerramientasExploitsBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

FeedsContactoPrivacidad© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
moodle-blackboard-img — Moodle 5.2.3 - Alta - Remota - Ruta - Blackboard img src copia archivos fuera del árbol de importación | Kitploit
Herramientas/GitHubGitHub/abraxas/moodle-blackboard-img
Análisis de VulnerabilidadesExplotaciónExplotación de Aplicaciones WebRecopilación de InformaciónSeguridad WebPruebas de PenetraciónLabs y Práctica
GitHubabraxas/moodle-blackboard-img

moodle-blackboard-img

Moodle 5.2.3 - Alta - Remota - Ruta - Blackboard img src copia archivos fuera del árbol de importación

Ver Repositorio
2hace 4 díasAún no revisado

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

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

Clase: Lectura de archivos Alcance: Remoto

qformat_blackboard_six_base::text_field une img src a $this->filebase sin PARAM_PATH. store_file_for_text_field luego copia esa ruta al área de archivos borrador del usuario. La función de la misma familia get_filecontent ya se protege con clean_param($path, PARAM_PATH). MSA-26-0012 protegió la importación de actividad de base de datos con PARAM_FILE. El img src de Blackboard no estaba en ese conjunto.

Un profesor que puede importar un zip de Blackboard inserta <img src="https://raw.githubusercontent.com/html/config.php">. La "imagen" del borrador es config.php. Los estudiantes no pueden importar.

IDsin CVE aún
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
ProductoMoodle
Afectado5.2.3 tag v5.2.3 (344232c15336c71b80f9aca8359ce0e0a9f3d116)
Autenticaciónprofesor (banco de preguntas / importación Blackboard de lección)
LicenciaGNU Affero GPL v3.0
Laboratoriosolo 127.0.0.1

Qué puede hacer un atacante

Escritor: un profesor que puede importar un zip de Blackboard en el banco de preguntas (o lección). El premio típico es config.php (contraseña de la base de datos) como el usuario de PHP. No es RCE a menos que encadene un segundo residuo. No es LPE.

PrivilegioMétodo / sinkReconocimiento / integridad / disponibilidadProbado en laboratorio o inferido
Leer un archivo que el usuario de PHP puede abrir, mediante ../ en img srctext_field une $this->filebase . '/' . $path; store_file_for_text_field copia al área de borradorReconocimiento (bytes del archivo)Probado en laboratorio. Los bytes del borrador coinciden con /var/www/html/config.php y contienen MOODLE-BLACKBOARD-IMG-WITNESS
Descargar ese borrador como la "imagen"itemid del borrador + nombre de archivo @@PLUGINFILE@@ reescritoReconocimientoProbado en laboratorio. GET /draft devolvió 298 bytes, sha256 igual a config.php
Cualquiera que luego pueda abrir la pregunta importadaMismo borrador / pluginfileReconocimientoInferido. El laboratorio se detuvo en la coincidencia del borrador del profesor
Importación de estudiantemismo zip, role=studentn/aProbado en laboratorio cerrado. HTTP 403 teacher-only
Misma ruta a través de clean_param($path, PARAM_PATH)gadget jail=1n/aProbado en laboratorio cerrado. Sin coincidencia, sin testigo, la ruta permanece bajo filebase
RCE de PHP / LPE del SOn/an/aCerrado. Este residuo copia bytes de archivo a un borrador. No los ejecuta

Moodle por defecto sin importación de Blackboard no tiene este fallo. MSA-22-0016 solo limpió baseurl.

Mismos residuos del pin: enrol_database SQLi, grades feedback IDOR, hidden grade items.

Cómo lo encontré

Fijé moodle/moodle v5.2.3 después de MSA-26-0042/0043. MSA-26-0012 protegió la importación de actividad de base de datos. Pasé a Blackboard después porque get_filecontent() ya conocía PARAM_PATH y text_field() todavía hacía una unión directa.

Caminos equivocados ya registrados: tratar la importación de estudiante como la fuga (es 403); llamar a esto RCE porque el archivo copiado es PHP (el borrador almacena bytes, no los include); asumir que MSA-22-0016 había terminado el trabajo (solo baseurl). Una reverse shell. Teatro.

Laboratorio

Gadget fiel del pin text_field / store_file_for_text_field, no una aplicación PHP completa de Moodle. how=gadget.

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

o

cd lab
./run.sh

Objetivo solo http://127.0.0.1:19560. Proyecto de Compose moodle-blackboard-img. El stack se desmonta tras la ejecución.

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 solución

clean_param($path, PARAM_PATH) sobre img src, luego realpath debe permanecer bajo realpath($this->filebase). Misma forma que get_filecontent().

Referencias

  • github.com/moodle/moodle tag v5.2.3
  • formatbase.php (text_field, store_file_for_text_field)
  • format.php (get_filecontent ya usa PARAM_PATH)
  • Parcheado cercano (no esta unión): MSA-26-0012
  • Mismo pin: moodle-enrol-database-sqli · moodle-grades-feedback-idor · moodle-grades-gradeitems
  • CWE-22

Licencia

GNU Affero GPL v3.0. Ver LICENSE. Solo laboratorio en loopback. Sin garantía.

Descargar herramienta