Descrição do problema
A validação de entrada e a codificação de saída ausentes permitem a injeção de JavaScript, levando ao XSS (Cross Site Scripting) Refletido.
O Cross Site Scripting Refletido pode ser usado para injetar JavaScript arbitrário na página autenticada do Microsoft System Center 2016. Pode-se interceptar a solicitação GET abaixo e modificar o SpaceID para injetar cadeias de caracteres arbitrárias no painel de navegação esquerdo do console da Web.
GET/OperationsManager/InternalPages/NavigationTree.aspx?SpaceId=1002&ViewId=Favorites_Overview HTTP/1.1
Veja o exemplo de uma cadeia de caracteres arbitrária:
abc%3E%3C","00000000-0000-0000-0000-000000000000");alert(1);//%3E
Um JavaScript mal-intencionado, após injetado, pode modificar o comportamento atual da página e entregar: cavalos de troia, forçar redirecionamentos mal-intencionados, falsificação de conteúdo, keyloggers, vazamento de conteúdo, vazamento de tokens VIEWSTATE e validadores (causar falha em controles anti-CSRF) etc.
O ataque constitui os seguintes passos
-
Um invasor cria uma solicitação GET autenticada específica do System Center com carga XSS e engana a vítima para acessar a URL especial ou engana o usuário para acessar um scam de phishing que dispara a solicitação específica.
-
A vítima autenticada carrega/recarrega a página inicial.
Observação: O ataque é aplicável a qualquer valor viewID e a cada solicitação com parâmetro da cadeia de caracteres de consulta SpaceID.
Caso de teste
Resultado esperado: Erro SpaceID Inválido ou painel vazio e nenhuma execução de JavaScript aleatório
Resultado: JavaScript arbitrário executado.
Resolução
Implementar uma validação rigorosa de entrada. Apenas número inteiros são aceitos como SpaceID, de modo que a verificação do tipo de dados em relação à entrada é suficiente para corrigir a vulnerabilidade.
Adicionamos uma verificação para garantir que o SpaceID seja apenas um valor com suporte (1001 e 1002); caso contrário, os dados na árvore ficarão vazios.
Referências
Consulte o aviso de diretrizes de segurança no CVE-2020-1331.
Classificação de segurança
Cross Site Scripting Refletido, Falsificação de Conteúdo