
Prova de conceito de exploit para CVE-2022-34919, demonstrando upload arbitrário de arquivos sem autenticação e RCE na interface clássica do Contensis CMS por meio de requisições HTTP manipuladas.
O Contensis Content Management System anterior à versão 15.2.1.79 tem uma falha em sua interface 'Classic' que permite que um usuário não autenticado carregue e aprove arquivos arbitrários. Ao carregar um arquivo aspx, é possível executar comandos no contexto do servidor web.
Esta vulnerabilidade foi descoberta em março de 2022 e corrigida pela Zengenti em sua versão de 8 de abril de 2022.
Passos para reproduzir:
1:
O upload inicial do arquivo é realizado com uma requisição POST para o seguinte endpoint:
https://[example].cloud.contensis.com/REST/UI/Wizards/CreateContent/UploadFile?folderId=1&projectId=1&context=%7B%22UserID%22%3A1%2C%22LanguageID%22%3A1%2C%22SecurityToken%22%3A%22%22%7D
O parâmetro context indica qual usuário está carregando o arquivo; neste caso, UserId 1, Administrador do Sistema. O parâmetro SecurityToken é obrigatório, mas pode estar em branco. Esta requisição (captura de tela 1) gera um arquivo temporário no servidor com um UUID. Neste exemplo, usei uma webshell disponível em: https://github.com/tennc/webshell/blob/master/fuzzdb-webshell/asp/cmd.aspx

2:
O arquivo deve então ser aprovado com uma requisição POST para o seguinte endpoint:
https://[example].cloud.contensis.com/REST/UI/Wizards/CreateContent/CreateContent
Esta requisição (captura de tela 2) incluirá o caminho para o arquivo temporário da requisição inicial e incluirá parâmetros para aprovar a publicação e modificar o tipo de conteúdo para contornar as restrições de arquivo. Neste caso, ContentTypeId é definido como 43, indicando que é um documento HTML, em vez de ASPX. O arquivo estará então disponível nos domínios 'preview' e 'live' abaixo:

3:
Seja responsável e teste apenas em hosts autorizados (captura de tela 3)