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

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
Herramientas/GitHubGitHub/m3m0o/portabilis-ieducar-user-type-privilege-escalation
Escalada de PrivilegiosAnálisis de VulnerabilidadesExplotaciónExplotación de Aplicaciones WebSeguridad WebPruebas de Penetración
GitHubm3m0o/portabilis-ieducar-user-type-privilege-escalation

portabilis-ieducar-user-type-privilege-escalation

Prueba de concepto para la explotación de la vulnerabilidad descrita en CVE-2025-11554, que se refiere a la posibilidad de una escalada de privilegios mediante solicitudes arbitrarias al endpoint de cambio de tipos de usuario en el software i-Educar.

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
Ver Repositorio
1hace 10 mesesAún no revisado

Portabilis i-Educar >= 2.1.13 Escalada de Privilegios Mediante Petición Arbitraria al Endpoint de Cambio de Tipo de Usuario

Prueba de concepto para la explotación de la vulnerabilidad descrita en CVE-2025-11554, que concierne a la posibilidad de una escalada de privilegios durante peticiones arbitrarias a los endpoints de tipos de usuario en el software i-Educar.

Descripción

Los usuarios sin los privilegios necesarios para cambiar tipos de usuario pueden modificar los permisos de los tipos de usuario registrados mediante una petición arbitraria al endpoint responsable de esta acción. Esto permite a los usuarios con privilegios bajos escalar sus privilegios otorgando permisos máximos al tipo de usuario con el que están asociados, comprometiendo todas las secciones de la aplicación.

Prueba de Concepto

Para demostrar la vulnerabilidad, simularemos una ruta de ataque que podría utilizarse en un escenario de explotación real. Primero, tenemos al usuario Usuário sem Privilégios, que está asociado al tipo de usuario Baixíssimo.

Usuario sin privilegios

El tipo de usuario Baixíssimo no tiene privilegios asociados y se le asigna el nivel de acceso más bajo, Biblioteca, que tiene el nivel 8.

Tipo de usuario sin privilegios

Para los fines de esta demostración, podemos ver que los permisos para editar tipos de usuario están deshabilitados para este rol, lo que significa que los usuarios asociados a él no deberían poder ver, crear/editar ni eliminar tipos de usuario.

Permisos de tipo de usuario para ver, editar y eliminar tipos de usuario

Al iniciar sesión como Usuário sem Privilégios, podemos confirmar que no se le asignan permisos, ya que no hay secciones disponibles para él.

Iniciando sesión como el usuario sin privilegios

El primer paso en el proceso de escalada de privilegios es identificar el tipo de usuario asignado al usuario. En varias respuestas a peticiones que devuelven documentos HTML renderizados de la aplicación, esta información se puede encontrar en la variable dataLayer, ubicada dentro del primer elemento script del documento. Podemos verificar esta información accediendo a la página de inicio de la aplicación, por ejemplo. En esta demostración, se utilizará Burp Suite para el análisis y la manipulación de peticiones.

Verificando la capa de datos del usuario

Después de identificar el tipo de usuario asociado al usuario actual, el siguiente paso es determinar su identificador almacenado en la base de datos. Para lograrlo, se debe utilizar el endpoint /usuarios/tipos/<cod_tipo_usuario>. Dado que los identificadores de tipos de usuario son numéricos y secuenciales, es posible enumerar todos los tipos de usuario almacenados hasta encontrar el asociado al usuario actual.

El tipo de usuario identificado por 1, por ejemplo, es el tipo de usuario administrativo, Administrador, por defecto.

Verificando el tipo de usuario con id 1

En la respuesta de la aplicación, podemos ver los permisos asociados al tipo de usuario en el objeto processes. Cada sección específica se identifica mediante un identificador numérico único, y el nivel de acceso del tipo de usuario a esa sección se determina por los números 0, 1, 2, o 3:

  1. No se permiten acciones.
  2. Solo puede ver información en la sección.
  3. Puede ver, crear nuevos registros y editar registros existentes en la sección.
  4. Puede ver, crear nuevos registros, editar y eliminar registros existentes en la sección.

Podemos observar que el tipo de usuario administrativo tiene nivel de acceso 3 para todas las secciones.

Verificando los privilegios del tipo de usuario con id 1

Al solicitar el tipo de usuario con identificador 2, vemos que corresponde al tipo de usuario asociado al usuario actual. Este tipo de usuario tiene un nivel de acceso de 0 para todas las secciones.

Verificando el tipo de usuario con id 2

Verificando los privilegios del tipo de usuario con id 2

Con todo esto en mente, podemos proceder con la escalada de privilegios. Para ello, se debe enviar una petición POST al mismo endpoint, que contenga el identificador del tipo de usuario correspondiente al identificador del tipo de usuario asociado al usuario actual. El cuerpo de la petición debe incluir los parámetros _method, name, level, description, y processes. No todos los valores requeridos son inmediatamente comprensibles, pero dado que este es un proyecto de código abierto, la estructura correcta de la petición podría descubrirse fácilmente mediante revisión de código o pruebas manuales en una instancia local.

En la petición siguiente, modificamos el nivel de acceso para todas las secciones al acceso máximo (3) y cambiamos el tipo de usuario de Biblioteca a Poli-institucional (parámetro level establecido al valor 1). Esto significa que el usuario obtendría acceso a todas las instituciones registradas, no solo a la asociada durante su creación.

Modificando los permisos del tipo de usuario con id 2

Después de esto, al recargar la página de inicio, podemos confirmar que el usuario anteriormente sin privilegios ahora tiene todos los privilegios disponibles en el contexto de la aplicación, otorgados arbitrariamente.

Escalada de privilegios completada

Código Vulnerable

Las rutas de los endpoints vulnerables se pueden encontrar en el archivo routes/web.php.

Archivo web.php

Los métodos vulnerables utilizados por estas rutas se pueden encontrar en el archivo app/Http/Controllers/AccessLevelController.php. Estos métodos no realizan una verificación de permisos sobre el usuario solicitante antes de ejecutar las acciones solicitadas sobre los tipos de usuario.

Archivo AccessLevelController.php

Archivo AccessLevelController.php

Impacto

Este software se utiliza como solución de gestión escolar en diversas instituciones públicas. Cada instancia potencialmente contiene varios tipos de información sensible sobre usuarios y estudiantes registrados, como documentos de identificación y registros médicos (condiciones médicas). En un escenario donde un usuario malintencionado con privilegios bajos o una cuenta controlada por un atacante explote esta vulnerabilidad, la confidencialidad, integridad y disponibilidad de estos registros estarían en riesgo. Una evaluación de seguridad rápida del proyecto revelaría esta debilidad.

Descargar herramienta