Skip to content
KitploitKITPLOIT
FerramentasExploitsBlog
Log in
Enviar
FerramentasExploitsBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

FeedsContatoPrivacidade© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
moodle-blackboard-img — Moodle 5.2.3 - Alto - Remoto - Caminho - Blackboard img src copia arquivos fora da árvore de importação | Kitploit
Ferramentas/GitHubGitHub/abraxas/moodle-blackboard-img
Análise de VulnerabilidadesExploraçãoExploração de Aplicações WebColeta de InformaçõesSegurança WebTestes de PenetraçãoLabs e Prática
GitHubabraxas/moodle-blackboard-img

moodle-blackboard-img

Moodle 5.2.3 - Alto - Remoto - Caminho - Blackboard img src copia arquivos fora da árvore de importação

Ver Repositório
2há 4 diasAinda não revisado

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

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: Leitura de arquivo Alcance: Remoto

qformat_blackboard_six_base::text_field concatena img src em $this->filebase sem PARAM_PATH. store_file_for_text_field então copia esse caminho para a área de arquivos de rascunho do usuário. get_filecontent da mesma família já restringe com clean_param($path, PARAM_PATH). MSA-26-0012 restringiu a importação de atividade de banco de dados com PARAM_FILE. O img src do Blackboard não estava nesse conjunto.

Um professor que pode importar um zip do Blackboard insere <img src="https://raw.githubusercontent.com/html/config.php">. A "imagem" do rascunho é config.php. Alunos não podem importar.

IDsem CVE ainda
CWECWE-22 / CWE-73
CVSSMédio: 6.5 CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N
ProdutoMoodle
Afetado5.2.3 tag v5.2.3 (344232c15336c71b80f9aca8359ce0e0a9f3d116)
Autenticaçãoprofessor (banco de questões / importação Blackboard de lição)
LicençaGNU Affero GPL v3.0
Labapenas 127.0.0.1

O que um atacante pode fazer

Escritor: um professor que pode importar um zip do Blackboard no banco de questões (ou lição). O prêmio típico é config.php (senha do BD) como o usuário do PHP. Não é RCE a menos que encadeiem um segundo resquício. Não é LPE.

PrivilégioMétodo / sinkRecon / integridade / disponibilidadeComprovado em lab ou inferido
Ler um arquivo que o usuário do PHP pode abrir, via ../ em img srctext_field concatena $this->filebase . '/' . $path; store_file_for_text_field copia para a área de rascunhoRecon (bytes do arquivo)Comprovado em lab. Os bytes do rascunho correspondem a /var/www/html/config.php e contêm MOODLE-BLACKBOARD-IMG-WITNESS
Baixar esse rascunho como a "imagem"itemid do rascunho + nome de arquivo @@PLUGINFILE@@ reescritoReconComprovado em lab. GET /draft retornou 298 bytes, sha256 igual ao config.php
Qualquer um que possa depois abrir a questão importadaMesmo rascunho / pluginfileReconInferido. O lab parou na correspondência do rascunho do professor
Importação por alunomesmo zip, role=studentn/aComprovado em lab fechado. HTTP 403 teacher-only
Mesmo caminho através de clean_param($path, PARAM_PATH)gadget jail=1n/aComprovado em lab fechado. Sem correspondência, sem witness, caminho permanece sob filebase
RCE em PHP / LPE no SOn/an/aFechado. Este resquício copia bytes de arquivo para um rascunho. Não os executa

Moodle padrão sem importação Blackboard não é este bug. MSA-22-0016 apenas limpou baseurl.

Mesmos resquícios do pin: enrol_database SQLi, grades feedback IDOR, hidden grade items.

Como eu encontrei

Eu fixei moodle/moodle v5.2.3 após MSA-26-0042/0043. MSA-26-0012 restringiu a importação de atividade de banco de dados. Eu foquei no Blackboard em seguida porque get_filecontent() já conhecia PARAM_PATH e text_field() ainda fazia uma concatenação crua.

Caminhos errados já registrados: tratar a importação por aluno como o vazamento (é 403); chamar isso de RCE porque o arquivo copiado é PHP (o rascunho armazena bytes, não os include); assumir que MSA-22-0016 tinha concluído o trabalho (apenas baseurl). Um reverse shell. Teatro.

Lab

Gadget fiel do pin text_field / store_file_for_text_field, não um app Moodle PHP completo. how=gadget.

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

ou

cd lab
./run.sh

Alvo apenas http://127.0.0.1:19560. Projeto Compose moodle-blackboard-img. A stack é desmontada após a execução.

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

A correção

clean_param($path, PARAM_PATH) em img src, então realpath deve permanecer sob realpath($this->filebase). Mesma forma que get_filecontent().

Referências

  • github.com/moodle/moodle tag v5.2.3
  • formatbase.php (text_field, store_file_for_text_field)
  • format.php (get_filecontent já usa PARAM_PATH)
  • Próximo corrigido (não esta concatenação): MSA-26-0012
  • Mesmo pin: moodle-enrol-database-sqli · moodle-grades-feedback-idor · moodle-grades-gradeitems
  • CWE-22

Licença

GNU Affero GPL v3.0. Veja LICENSE. Apenas lab em loopback. Sem garantia.

Baixar ferramenta