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-grades-feedback-idor — Moodle 5.2.3 - Alta - Remoto - IDOR - core_grades_get_feedback ignora verificações de grupos separados | Kitploit
Ferramentas/GitHubGitHub/abraxas/moodle-grades-feedback-idor
Análise de VulnerabilidadesExploraçãoExploração de Aplicações WebColeta de InformaçõesVirtualização para SegurançaSegurança WebTestes de PenetraçãoLabs e Prática
GitHubabraxas/moodle-grades-feedback-idor

moodle-grades-feedback-idor

Moodle 5.2.3 - Alta - Remoto - IDOR - core_grades_get_feedback ignora verificações de grupos separados

Ver Repositório
3há 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-grades-feedback-idor

abraxaslabs.tech  ·  github.com/abraxas  ·  @abraxas_null  ·  [email protected]  ·  moodle-grades-feedback-idor

moodle-grades-feedback-idor

Moodle LMS 5.2.3 - Moodle

Classe: IDOR Alcance: Remoto

core_grades_get_feedback ainda chama apenas require_capability('gradereport/grader:view'). Outros serviços web de notas ganharam groups_user_groups_visible / groups_group_visible após MSA-26-0016 / MDL-88667. Este serviço AJAX não ganhou. O JSON retorna com feedbacktext, fullname, picture e o primeiro campo de identidade.

Um professor sem permissão de edição em grupos separados, sem accessallgroups, envia via POST o userid de outro aluno e lê o feedback desse grupo.

IDsem CVE ainda
CWECWE-863 / CWE-200
CVSSMédio: 4.3 CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:L/I:N/A:N
ProdutoMoodle
Afetado5.2.3 tag v5.2.3 (344232c15336c71b80f9aca8359ce0e0a9f3d116)
Autenticaçãoprofessor sem permissão de edição com gradereport/grader:view, sem moodle/site:accessallgroups. Curso em grupos separados.
LicençaGNU Affero GPL v3.0
Labapenas 127.0.0.1

O que um atacante pode fazer

Autor: um professor sem permissão de edição matriculado em um curso com grupos separados, apenas no Grupo A, com visualização de notas e sem acesso a todos os grupos. Ele escolhe o userid de outro aluno matriculado (inteiros sequenciais) e chama o serviço AJAX. Não é RCE. Não é LPE. Não é escrita de nota.

PrivilégioMétodo / sinkRecon / integridade / disponibilidadeComprovado em lab ou inferido
Ler o feedback de notas de outro grupoPOST /lib/ajax/service.php?sesskey= core_grades_get_feedback {courseid, userid, itemid}ReconComprovado em lab. HTTP 200, error=false, feedbacktext contém MOODLE-GRADES-FEEDBACK-IDOR-WITNESS
Ler o campo de identidade e o nome de exibição desse alunoMesma resposta additionalfield / fullname / pictureReconComprovado em lab. [email protected], fullname=Student Bravo
Percorrer valores sequenciais de userid no mesmo cursoMesmo método, ids adivinhadosReconInferido. O lab usou o id semeado do Grupo B
Listar o Grupo B através do seletor irmãocore_grades_get_gradable_users {courseid, groupid=B}n/aComprovado em lab fechado. cannotaccessgroup
Aluno chama o mesmo serviço de feedbackpapel de aluno, mesmos argumentosn/aComprovado em lab fechado. nopermissions
Feedback do mesmo grupo (aluno do Grupo A)chamada do professor para Student AlphaRecon (pretendido)Comprovado em lab permitido. HTTP 200, error=false
PHP RCE / OS LPE / escrita de notan/an/aFechado. Este resquício é uma leitura de feedback e campos de perfil

Moodle padrão sem grupos separados, ou um professor que já possui moodle/site:accessallgroups, não é este resquício. Professores com permissão de edição com essa cap já veem todos os grupos.

Resquícios do mesmo pin: Blackboard img file read, enrol_database SQLi, hidden grade items.

Como eu encontrei

Eu fixei moodle/moodle v5.2.3 após MSA-26-0042/0043. MSA-26-0016 fechou verificações de grupo em outros serviços web de notas. get_feedback.php não estava nesse conjunto. A UI do grader foi endurecida. Este serviço AJAX não foi.

Caminhos errados já registrados: tratar a falha do irmão get_gradable_users como a história completa (esse já lança cannotaccessgroup); chamar isso de escrita de nota porque o payload nomeia itemid (o serviço é uma leitura); aluno como atacante (nopermissions). Um reverse shell. Teatro.

Lab

Moodle v5.2.3 ao vivo em php:8.3-cli + MariaDB 11.4. O seed constrói um curso com grupos separados, professor apenas no Grupo A, aluno B apenas no Grupo B, CAP_PREVENT em moodle/site:accessallgroups, e um item de nota manual cujo feedback é a testemunha. how=live.

O Compose faz bind-mount de ../../vendors/moodle/src como /opt/moodle-pin (o caminho é relativo a lab/docker-compose.yml). Clone moodle/moodle tag v5.2.3 nesse caminho, ou aponte o volume para o seu checkout. A árvore do Moodle não está neste pacote.

python3 moodle-grades-feedback-idor-Abraxas-Labs.py

ou

cd lab
./run.sh

Alvo apenas http://127.0.0.1:19580. Projeto Compose moodle-grades-feedback-idor. A stack é desmontada após a execução.

SUCCESS moodle-grades-feedback-idor how=live pin=v5.2.3 teacher-role=teacher accessallgroups=no groupmode=1 feedback-has-witness=yes [email protected] sibling-group-b=cannotaccessgroup student-call=nopermissions MOODLE-GRADES-FEEDBACK-IDOR-WITNESS

A correção

Após validate_context / require_capability, carregue o curso e o usuário alvo, então recuse a menos que groups_user_groups_visible($course, $userid) e o alvo esteja matriculado. Mesma forma que gradereport_user e core_grades_get_gradable_users após MDL-88667.

Referências

  • github.com/moodle/moodle tag v5.2.3
  • get_feedback.php
  • O irmão já nega o outro grupo: get_gradable_users.php
  • Próximo corrigido (não este serviço): MSA-26-0016 / MDL-88667
  • Mesmo pin: moodle-blackboard-img · moodle-enrol-database-sqli · moodle-grades-gradeitems
  • CWE-863

Licença

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

Baixar ferramenta