参考:
简介
什么是 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
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。