XSLT
参考:
https://book.hacktricks.xyz/pentesting-web/xslt-server-side-injection-extensible-stylesheet-languaje-transformations
http://repository.root-me.org/Exploitation - Web/EN - Abusing XSLT for practical attacks - Arnaboldi - IO Active.pdf
简介
什么是 XSLT
全称 Extensible Stylesheet Language Transformations。xsl 是一种用于转换处理 xml 文档的语言。XSLT 就是指 xsl 解释器处理 xsl 文档的这个过程。
这是 xml,xml 是一种数据存储的形式。
<?xml version="1.0" encoding="UTF-8"?>
CD Title
这是 xsl,用于描述如何转换 xml 文档的语言。
<?xml version="1.0" encoding="UTF-8"?>
The Super title
当执行时,saxonb-xslt -xsl:xsl.xsl xml.xml
,会获得如下结果。saxonb-xslt
就是 xsl 解释器。
The Super title
CD Title
可以看到,和 php 解释器处理 php 脚本文件这个过程很类似。我们可以用类比的方法来体会这个漏洞的原理。
php 解释器 | php 代码 | php 脚本文件 | php 处理 php 脚本 |
xsl 解释器 | xsl 代码 | xml 数据文件 | xslt |
通过上面的对比,可以看到这个漏洞属于代码执行漏洞。也可以看到其实 xslt 漏洞本质就是如果在特定场景下,可以控制 xsl 代码,从而使 xsl 解释器 执行恶意的 xsl 代码。
其危害取决于 xsl 语言、 xsl 解释器支持的功能。通常来说,可以读写文件、ssrf、特定情景下可以 rce。
攻击场景
如果发现数据包中出现
类似的标签,则可以尝试攻击。
如何攻击
尝试注入 恶意 xsl 代码。
如何防御
和代码执行一样的防御原理。
利用姿势
因为很少见,所以只补一个链接,待遇到时再进行详细学习。
https://book.hacktricks.xyz/pentesting-web/xslt-server-side-injection-extensible-stylesheet-languaje-transformations