XSLT
作者:互联网
参考:
简介
什么是 XSLT
全称 Extensible Stylesheet Language Transformations。xsl 是一种用于转换处理 xml 文档的语言。XSLT 就是指 xsl 解释器处理 xsl 文档的这个过程。
这是 xml,xml 是一种数据存储的形式。
<?xml version="1.0" encoding="UTF-8"?>
<catalog>
<cd>
<title>CD Title</title>
</cd>
</catalog>
这是 xsl,用于描述如何转换 xml 文档的语言。
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<html>
<body>
<h2>The Super title</h2>
<table border="1">
<tr>
<td><xsl:value-of select="catalog/cd/title"/></td>
</tr>
</table>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
当执行时,saxonb-xslt -xsl:xsl.xsl xml.xml
,会获得如下结果。saxonb-xslt
就是 xsl 解释器。
<html>
<body>
<h2>The Super title</h2>
<table border="1">
<tr>
<td>CD Title</td>
</tr>
</table>
</body>
</html>
可以看到,和 php 解释器处理 php 脚本文件这个过程很类似。我们可以用类比的方法来体会这个漏洞的原理。
php 解释器 | php 代码 | php 脚本文件 | php 处理 php 脚本 |
xsl 解释器 | xsl 代码 | xml 数据文件 | xslt |
通过上面的对比,可以看到这个漏洞属于代码执行漏洞。也可以看到其实 xslt 漏洞本质就是如果在特定场景下,可以控制 xsl 代码,从而使 xsl 解释器 执行恶意的 xsl 代码。
其危害取决于 xsl 语言、 xsl 解释器支持的功能。通常来说,可以读写文件、ssrf、特定情景下可以 rce。
攻击场景
如果发现数据包中出现 <xsl: >
类似的标签,则可以尝试攻击。
如何攻击
尝试注入 恶意 xsl 代码。
如何防御
和代码执行一样的防御原理。
利用姿势
因为很少见,所以只补一个链接,待遇到时再进行详细学习。
标签:xml,解释器,xslt,XSLT,php,xsl 来源: https://www.cnblogs.com/starrys/p/15391213.html