Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
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.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
portabilis-ieducar-user-type-privilege-escalation — Prova de conceito para exploração da vulnerabilidade descrita em CVE-2025-11554, que diz respeito à possibilidade de escalonamento de privilégios por meio de requisições arbitrárias ao endpoint de alteração de tipos de usuário no software i-Educar. | Kitploit
Ferramentas/GitHubGitHub/m3m0o/portabilis-ieducar-user-type-privilege-escalation
Escalada de PrivilégiosAnálise de VulnerabilidadesExploraçãoExploração de Aplicações WebSegurança WebTestes de Penetração
GitHubm3m0o/portabilis-ieducar-user-type-privilege-escalation

portabilis-ieducar-user-type-privilege-escalation

Prova de conceito para exploração da vulnerabilidade descrita em CVE-2025-11554, que diz respeito à possibilidade de escalonamento de privilégios por meio de requisições arbitrárias ao endpoint de alteração de tipos de usuário no software i-Educar.

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
Ver Repositório
1há 10 mesesAinda não revisado

Portabilis i-Educar >= 2.1.13 Escalação de Privilégios Através de Requisição Arbitrária ao Endpoint de Alteração de Tipo de Usuário

Prova de conceito para exploração da vulnerabilidade descrita em CVE-2025-11554, que diz respeito à possibilidade de escalação de privilégios durante requisições arbitrárias aos endpoints de tipos de usuário no software i-Educar.

Descrição

Usuários sem os privilégios necessários para alterar tipos de usuário podem modificar as permissões de tipos de usuário registrados através de uma requisição arbitrária ao endpoint responsável por essa ação. Isso permite que usuários com baixos privilégios escalem seus privilégios concedendo permissões máximas ao tipo de usuário ao qual estão associados, comprometendo todas as seções da aplicação.

Prova de Conceito

Para demonstrar a vulnerabilidade, simularemos um caminho de ataque que poderia ser usado em um cenário real de exploração. Primeiro, temos o usuário Usuário sem Privilégios, que está associado ao tipo de usuário Baixíssimo.

Usuário sem privilégios

O tipo de usuário Baixíssimo não possui privilégios associados e recebe o nível de acesso mais baixo, Biblioteca, que possui o nível 8.

Tipo de usuário sem privilégios

Para fins desta demonstração, podemos ver que as permissões para edição de tipos de usuário estão desabilitadas para este perfil, o que significa que usuários associados a ele não deveriam conseguir visualizar, criar/editar ou excluir tipos de usuário.

Permissões de tipo de usuário para visualizar, editar e excluir tipos de usuário

Ao fazer login como Usuário sem Privilégios, podemos confirmar que nenhuma permissão é atribuída, pois nenhuma seção está disponível para ele.

Fazendo login como usuário sem privilégios

O primeiro passo no processo de escalação de privilégios é identificar o tipo de usuário atribuído ao usuário. Em várias respostas a requisições que retornam documentos HTML renderizados pela aplicação, essa informação pode ser encontrada na variável dataLayer, localizada dentro do primeiro elemento script do documento. Podemos verificar essa informação acessando a página inicial da aplicação, por exemplo. Nesta demonstração, o Burp Suite será usado para análise e manipulação de requisições.

Verificando a camada de dados do usuário

Após identificar o tipo de usuário associado ao usuário atual, o próximo passo é determinar seu identificador armazenado no banco de dados. Para isso, o endpoint /usuarios/tipos/<cod_tipo_usuario> deve ser usado. Como os identificadores de tipos de usuário são numéricos e sequenciais, é possível enumerar todos os tipos de usuário armazenados até encontrar aquele associado ao usuário atual.

O tipo de usuário identificado por 1, por exemplo, é o tipo de usuário administrativo, Administrador, por padrão.

Verificando tipo de usuário com id 1

Na resposta da aplicação, podemos ver as permissões associadas ao tipo de usuário no objeto processes. Cada seção específica é identificada por um identificador numérico único, e o nível de acesso do tipo de usuário a essa seção é determinado pelos números 0, 1, 2, ou 3:

  1. Nenhuma ação permitida.
  2. Pode apenas visualizar informações na seção.
  3. Pode visualizar, criar novos registros e editar registros existentes na seção.
  4. Pode visualizar, criar novos registros, editar e excluir registros existentes na seção.

Podemos observar que o tipo de usuário administrativo possui nível de acesso 3 para todas as seções.

Verificando privilégios do tipo de usuário com id 1

Ao solicitar o tipo de usuário com identificador 2, vemos que ele corresponde ao tipo de usuário associado ao usuário atual. Este tipo de usuário possui nível de acesso 0 para todas as seções.

Verificando tipo de usuário com id 2

Verificando privilégios do tipo de usuário com id 2

Com tudo isso em mente, podemos prosseguir com a escalação de privilégios. Para isso, uma requisição POST deve ser enviada ao mesmo endpoint, contendo o identificador do tipo de usuário correspondente ao identificador do tipo de usuário associado ao usuário atual. O corpo da requisição deve incluir os parâmetros _method, name, level, description, e processes. Nem todos os valores obrigatórios são imediatamente compreensíveis, mas como este é um projeto de código aberto, a estrutura correta da requisição poderia ser facilmente descoberta através de revisão de código ou testes manuais em uma instância local.

Na requisição abaixo, modificamos o nível de acesso para todas as seções para acesso máximo (3) e alteramos o tipo de usuário de Biblioteca para Poli-institucional (parâmetro level definido com valor 1).** Isso significa que o usuário ganharia acesso a todas as instituições registradas, não apenas àquela associada durante sua criação.

Modificando permissões do tipo de usuário com id 2

Depois disso, ao recarregar a página inicial, podemos confirmar que o usuário anteriormente sem privilégios agora possui todos os privilégios disponíveis no contexto da aplicação, concedidos arbitrariamente.

Escalação de privilégios concluída

Código Vulnerável

As rotas para os endpoints vulneráveis podem ser encontradas no arquivo routes/web.php.

Arquivo web.php

Os métodos vulneráveis usados por essas rotas podem ser encontrados no arquivo app/Http/Controllers/AccessLevelController.php. Esses métodos não realizam verificação de permissão do usuário solicitante antes de executar as ações solicitadas nos tipos de usuário.

Arquivo AccessLevelController.php

Arquivo AccessLevelController.php

Impacto

Este software é usado como solução de gestão escolar em diversas instituições públicas. Cada instância potencialmente contém vários tipos de informações sensíveis sobre usuários e estudantes registrados, como documentos de identificação e prontuários médicos (condições médicas). Em um cenário onde um usuário malicioso com baixos privilégios ou uma conta controlada por atacante explore esta vulnerabilidade, a confidencialidade, integridade e disponibilidade desses registros estariam em risco. Uma avaliação de segurança rápida do projeto revelaria essa fraqueza.

Baixar ferramenta